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
(): 組
()+: 多個組