十一、shell中的連接符,grep egrep 命令與正則表達式

一、shell中的連接符

&&:左邊成功才能執行右邊

||:左邊執行不成功,纔會執行右邊

;:左右無關


二、正則,grep過濾


#alias cg=’grep --color‘

#vi .bashrc

輸入 alias cg=’grep --color‘

使這條命令永久生效。grep --color  把匹配的關鍵詞用紅色表示

-c 打印出符合要求的行數

-n 在輸出符合要求的行號的同時連同行號一起輸出

-v 打印不符合要求的行

-A 後面跟一個數字,例如,-A2 表示顯示符合要求的行以及其下面兩行

-B 後面跟一個數字,例如 -B2 表示打印符合要求的行以及上面兩行

-C 後面跟一個數字,例如 -C2 表示打印符合要求的行以及上下兩行

grep --color  把匹配的關鍵詞用紅色表示

#grep '[0-9]' 1.txt 過濾出包含數字的行

#grep '[^0-9]' 1.txt  過濾出非數字的行   在【】裏面加^ 表示非

#grep -v '^#' 1.txt 去除以#開頭的行

#grep -v '^$' 1.txt |grep -v '^#' 去除所有空行和以#開頭的行

#grep '^[a-zA-Z]' 1.txt 過濾出以英文字母開頭的行

#grep '^[^0-9]' 1.txt 過濾出以非數字開頭的行

#grep 'o\{2\}' 1.txt 指定過濾字符次數       {} 大括號,grep需要脫義才能使用

#grep 'r.o' 1.txt; grep 'r*t' 1.txt; grep 'r.*' 1.txt

. 表示任意一個字符  (#grep 'r.o' 1.txt 表示r和o之間的任意一個字符)

* 表示零個或多個前面的字符  (#grep 'r*o' 1.txt,表示在0之前的的零個或多個r字符)

.*表示零個或多個任意字符,空行也包含在內  (全匹配)

 

 + 表示1個或多個前面的字符


egrep=grep -E

egrep是grep的擴展,它可以實現所有grep的功能。

#egrep 'o+' 1.txt 匹配1個或一個以上+號前面的字符

#egrep ’o?' 1.txt 匹配0個或1個?號前面的字符

#egrep 'root|body' 1.txt 匹配root 或者 body

#egrep ’r(oo)|(at)0' 1.txt 用括號表示一個整體,匹配roo或者 ato

#egrep '(oo)+' 1.txt 匹配一個或者多個oo


#grep -E --color '(rr){5,6}' 1.txt 匹配出現rr5次或者6次的行。

等於

#grep --color '\(rr)\{5,6}' 1.txt


+ 和 ? grep不支持,egrep才支持

QQ截圖20161027002320.png

A grep '1.a' 1.txt 這裏的1.a表示1和a之間可以是任意一個字符

B grep 'b*a' 1.txt 表示有0個或多個b,然後a

C grep 'a\?b' 1.txt 會過濾含有b或者ab的行

D grep 'a.*b' 1.txt 表示只要這一行中前面有a後面有b就會匹配


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