Linux grep和egrep,fgrep的區別ide
閱讀數:10981get
例子:it
grep '\<Tom\>' file 包含單詞Tom的行
grep 'Tom savage' file 包含Tom savage的行
grep '^Tommy' file 包含以Tommy開頭的行
grep '.bak$' file 包含以.bak結束的行
grep '[Pp]yramid' file 包含pyramid 或Pyramid的單詞的行
grep '[A-Z]' file 包含至少一個大寫字母的行
grep '[0-9]' file 包含至少一個數字的行
grep '[A-Z]...[0-9]' file 包含五個字符,以大寫開頭, 和一個數字結尾的行.
grep -w '[tT]est' file 包含單詞和test的行.
grep -s 'ken sun' file 找到包含ken sun的行, 但不打印行, 而是用來檢查退出狀態.
grep -v aaa file 打印不包含aaa的行.
grep -i cathy file 打印全部包含cathy的行, 而不考慮大小些.
grep -l 'dear cathy' * 打印包含dear cathy的文件的文件名清單.
grep -n tom file 打印匹配的行並追加行號.
grep "$LOGNAME" file 包含變量內容的行, 注意必須用雙引號, 單引號則沒法引用變量.
grep '$name' file 打印包含字符$name的行.io
2 : egrep = grep -E 可使用基本的正則表達外, 還能夠用擴展表達式. 注意區別.
擴展表達式:模板
egrep '^+' file 以一個或者多個空格開頭的行.
grep '^' file 同上
egrep '(TOM|DAN) SAVAGE' file 包含 TOM SAVAGE 和DAN SAVAGE的行.
egrep '(ab)+' file 包含至少一個ab的行.
egrep 'x[0-9]?' file 包含x或者x後面跟着0個或者多個數字的行.
egrep 'fun.$' 全部文件裏面以fun.結尾的行.
egrep '[A-Z]+' file 至少包含一個大寫字母的行.
egrep '[0-9]' file 至少一個數字的行.
egrep '[A-Z]...[0-9]' file 有五個字符, 第一個式大寫, 最後一個是數字的行.
egrep '[tT]est' file 包含單詞test或Test的行.
egrep 'ken sun' file 包含ken sun的行.
egrep -v 'marry' file 不包含marry的行.
egrep -i 'sam' file 不考慮sam的大小寫,含有sam的行.
egrep -l "dear ken" * 包含dear ken的全部文件的清單.
egrep -n tom file 包含tom的行, 每行前面追加行號.
egrep -s "$name" file 找到變量名$name的, 不打印而是顯示退出狀態. 0表示找到. 1表示表達式沒找到符合要求的, 2表示文件沒找到.class
3 fgrep 很簡單就是固化表達式的搜索.如:test
fgrep "$name...[a-z]" file 就是在file裏面找到和字符$name...[a-z]同樣的行. 其中$和...等沒有轉義的意義.
http://hi.baidu.com/sei_zhouyu/item/c18e1a950d2e9eb5cc80e558變量