shell實戰訓練營Day4

grep egrep 匹配
grep -[cinrvABC] 'word' file
grep -c 'abc' file 列出file中 包含 abc的行
grep -n 'abc' file 列出file中 包含 abc的行,並顯示行號
grep -i 'abc' file 不區分字母大小寫
grep -v '[0-9]' file 取反 ,列出不包含[0-9]的行
grep -r 'word' /dir 遍歷所有/dir下包含的word
grep -An 'abc' file (其中n爲數字) 列出file中包含abc的行以及下面n行,共n+1行
grep -Bn 'abc' file (其中n爲數字) 列出file中包含abc的行以及上面n行,共n+1行
grep -Cn 'abc' file (其中n爲數字) 列出file中包含abc的行以及上面下面各n行,共2n+1行
grep -v '^$' file (^表示開頭,$表示結尾) 列出file中的非空行
grep -n [^0-9] file (^在括號內表示邏輯關係“非”) 列出包含數字的行
grep -n ^[^0-9] file (^在括號外表示開頭) 列出不是已[0-9]開頭的行
grep 'a.b' file ·表示任意一個字符 可以是 數字,字母,符號
grep 'ab' file 表示任意個前面的字符 (本例中表示匹配a ,包含0個a)
grep .
file 全部匹配
grep 'a{0,2}' file 匹配0個至2個a,其中\爲脫義符
grep -E 'a{0,3}' file 匹配0個至3個a,使用-E參數,可以不加脫義符
egrep 'a{0,2}' file 匹配0個至2個a
egrep 'a+b' file +表示匹配+前面字符 1次 或 多次 (本例中表示匹配1個或多個a)
egrep 'a?b' file ?表示匹配?前面字符 0次 或 1次 (本例中表示匹配0個或1個a)
egrep 'abc|123' file | 表示邏輯關係或“ (本例中表示匹配abc或123)
egrep '(11){2} file 表示整體匹配,即匹配1111
注:grep命令不識別 () [] {} + | 等符號 在使用中可以配合-E參數一同使用,或者直接使用 egrep命令

sed 替換 匹配

n滿足條件 , p打印 ,d刪除, s修改源文件,e同時執行多個表達式,r 開啓識別 + | {} 等符號

sed -n /abc/p file 打印包含abc的行
sed -nr /a{2}/ file 打印包含aa的行
sed -n '1,$' p file 打印全文
sed -e '1,3'p -e '/abc/' file 打印1至3行與包含abc的行
sed -n '/abc/'Ip 不區分大小寫匹配
sed '1,5'd file 刪除第1至5行
sed -i '1,5'd file 刪除原文第1至5行
sed 's/[A-Z]/\l&/g' file 大寫字母轉換爲小寫字母
sed 's/[a-z]/\u&/g' file 小寫字母轉換爲大寫字母
sed '1,5s/abc/123/g' file 將1至5行中的abc全部替換爲123,若不加g,則只替換第一個
sed 's /([^:]+):(.*):([^:]+)/ \3:\2:\1/' /etc/passwd 將第一段與最後一段互換位置
sed -r 's/^/aaaa:&/g' file 在行首添加aaaa:
sed -r 's/&/bbbb:&/g' file 在行尾添加bbbb:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章