* 前一个字符0次或者多次。 通配符是代表任意字符。
. 任意一个字符,除了换行符。 相当于通配符中的?。
^ 匹配行首
$ 匹配行尾
[ ] 匹配中括号中任意一个字符。 和通配符一致。
[^] 非中括号中的字符。 [^0-9], [^a-z]
\{n\} 前面的字符重复n 次。 [0-9]\{4\}, [1][3-8][0-9]\{9\}, 手机号码。
\{ n, \} 前面字符重复大于等于n次。[0-9]\{2, \},十位以上的数字。
\{ n, m \} 前面字符大于等于n次,最大m次。 [a-z]\{6,8\} , 6到8位的小写字母。
注意,grep a表示,重复0次或多次。列出所有行。这么写没有意义。
root@csc:/tmp/testdir# grep "a*" aaaa
1111
改成grep aa*, 表示a出现一次以上。
root@csc:/tmp/testdir# grep "aa*" aaaa
.*代表匹配任意字符
grep "a.*a" file
grep ".*" file
开头结尾,空白行
grep "^M" file
grep "N$" file
grep -n "^$" file 列出空白行,并标注行号
grep ^[a-z] file 开头是小写字母
grep ^[^a-zA-Z] 不用字母开头的行
转义符\
grep "\.$" file .为结尾的行。
grep "a\{3\}" file 最少3次出现a。
grep "a\{1,3\}i" file 最少1次,最多3次出现a。
阅读(114) | 评论(0) | 转发(0) |