-n :顺便输出行号 -v :反向选择,亦即显示出没有 ‘搜寻字符串‘ 内容的那一行!
-r : --recursive
-i :忽略大小写的不同,所以大小写视为相同
-c :计算找到 ‘搜寻字符串‘ 的次数
-l : files-with-matches print only names of FILEs containing matches
# grep -l -r ‘test’ * #在当前目录及其子目录下搜索‘test‘的文件,但是不显示匹配的行,只显示匹配的文件
-r :
--
正则表达式
[]
grep -n ‘t[ae]st‘ regular_express.txt - 『tast』或『test』
[] 仅代表一个。
[^]
反向选择 [^]
grep -n ‘[^g]oo‘ regular_express.txt -有 oo 的行,但不想要 oo 前面有 g
当我们在一组集合字节中,如果该字节组是连续的,例如大写英文/小写英文/数字等等, 就可以使用[a-z],[A-Z],[0-9]等方式来书写
那么如果我们的要求字串是数字与英文呢? 呵呵!就将他全部写在一起,变成:[a-zA-Z0-9]
行首与行尾字节 ^ $
grep -n ‘^the‘ regular_express.txt - the 只在行首列
grep -n ‘^[^a-zA-Z]‘ regular_express.txt - 不想要开头是英文字母
grep -n ‘\.$‘ regular_express.txt 行尾结束为小数点 (.) 的那一行
grep -n ‘^$‘ regular_express.txt 找出空白行
任意一个字节 . 与重复字节 *
. (小数点):代表『一定有一个任意字节』的意思;
* (星号):代表『重复前一个字符, 0 到无穷多次』的意思,为组合形态
grep -n ‘g..d‘ regular_express.txt --g??d 的字串,亦即共有四个字节, 起头是 g 而结束是 d
『o*』代表的是:『拥有空字节或一个 o 以上的字节』
grep -n ‘ooo*‘ regular_express.txt -『至少两个 o 以上的字串』时,就需要 ooo*
grep -n ‘goo*g‘ regular_express.txt 字串开头与结尾都是 g,但是两个 g 之间仅能存在至少一个 o
grep -n ‘g.*g‘ regular_express.txt g 开头与 g 结尾的行
grep -n ‘[0-9][0-9]*‘ regular_express.txt 找出『任意数字』的行
原文:http://www.cnblogs.com/kakaisgood/p/6485638.html