[Command]Linux 文件格式化處理

Linux 文件格式化處理

文本主要涉及:
1. grep
2. sed
3. awk
4. diff
5. 正則表達式

gerp

基本參數

-n : show line
-v: show those which don't satisfied requirement.
-i: ignore the upper or lower case

[] 表示匹配一個字符
在[]中^表示非。

grep -n '[a-z]t' filename
[:lower:] lower case
[:upper:] upper case
[:digit:] digit number
[:alnum:] number or char
[:alpha:] char

去除空白行:

grep -v '^$' filename | grep -v '^#'

sed / gsed

-n: silient,只有處理過的行會顯示
-e: 在命令行模式下進行動作編輯
-f: 執行filename內的sed動作
-r: 支持擴展的正則表達式
-i: 在文件內操作

[n1,[,n2]] function
function:
a: 添加一行(下一行)
c: 替換
d: 刪除
i: 插入,上一行
p: 打印
s: 替換 s/old/new/g

awk

基本變量

NF:每一行共有的字段
NR: 當前處理第幾行
FS: 設定分隔符,默認爲空格符

$1 表示第一個字段,用print來輸出,如果需要輸出非變量的話,要加上”。
awk默認用''表示操作的內容,支持基本的邏輯運算符。

diff

用於比較兩個文件間區別

-b: 忽略一行當中僅有的多個空白
-B:忽略空白行的區別
-i:忽略大小寫的區別
diff file1 file2

patch

補丁,用於將一個文件更新爲新的文件。

diff -Naur oldFile newFile > test.patch
patch -pN < patch_file #更新
patch -R -pN < patch_file # 還原

N表示目錄的刪減。在同一個目錄下爲0.

基本正則表達式

^: 行首
$: 行末
.:表示任意一個字符
*:表示前面一個字符爲0個或多個
.*:  表示零個或多個字符
{}:表示數量範圍(注意轉義)

擴展正則表達式

+:重複一個或以上的前一個字符
?:重複0個或一個的前一個字符
|: or
(): 組
()+: 多個組
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章