正規表達式
一個點(.)代表一個字元。
比如:.a. 代表3個字元,中間一個字元是a,兩邊各一個任意字元。
比如:... 代表3個任意字元。
若要比對點(.)本身,則使用轉義字元。
比如:my\... 代表my.後接兩個字元。
行首比對^
行尾比對$
[...] 代表字元串中的一個字元。
比如:[abc] 代表a或b或c中的任意一個字元。
比如:[Mm]y 代表My或者my。
^出現在[]裡,代表“非”
比如:[^a]代表不是a
*代表前面的字元有0個或者0個以上
比如:a*b代表ab或aab或aaab等。
\{...\}代表制定符合的個數。
比如:\{1,5\}代表前面的字元有1-5個。
Sed
sed基本文法:sed '樣式' 檔案
樣式中,使用// 代表尋找,比如1,5代表第一到第五行,/aaa/,/bbb/ 表示作用範圍從aaa的行到bbb的行。
例子:
sed '1,4d' file 指的是把第一到第四行删除。
sed '/aaa/d' file 指的是把還有aaa的那行删除。
sed '/[0-9]\{3\}/d' file 指的是把還有3個數字的行删除。
sed '/^$/d' file 指的是把空白行删除。
sed '/aaa/!d' file 指的是把不含有aaa行的删除。
sed '/aaa/p' file 指的是把含有aaa的行顯示出來。
sed -n '/aaa/p' file 指的是把含有aaa的行顯示出來,同時顯示行号。
使用sed取代字元
sed 's/aaa/bbb/p' file 将bbb取代aaa,隻取代一次。
sed 's/aaa/bbb/pg' file 将bbb取代aaa,全部取代。
sed 's/aaa//p' file 将aaa删除,隻删除一次。
sed 's/^...//' file 将每行的前3個字元删除。
sed 's/...$//' file 将每行的後3個字元删除。
sed -n 's/\(a\)/\1b/p' file 找到第一個a然後替換成ab。
awk
awk '/aa/' file 顯示含有aa的行。
awk '{print $1, $2}' file 顯示第一第二字段。
awk '/aa/{print $1, $2}' file 将含有aa的行的第一和第二個字段顯示出來。
awk -F: '/^root/{print $1, $2}' /etc/passwd 指定:為分隔符,列印第一和第二字段。
awk -F: 'BEGIN{OFS="+++"}'/^root/{print $1, $2} /etc/passwd 以:為分隔符,列印第一和第二段,而且彼此用+++分開。
本文轉自 justiceplus 51CTO部落格,原文連結:http://blog.51cto.com/johnwang/327154,如需轉載請自行聯系原作者