grep的语法
grep [-acinv] '搜索字符串' filename
-a:在二进制文件中,以文本文件的方式搜索数据
-c:计算找到‘搜索字符串’的次数
-i:忽略大小写的不同,所以大小写视为相同
-n:输出行号
-v:反向选择,即显示出没有‘搜索字符串’内容的那一行
搜索特定的字符串,最简单的
grep -n 'the' a.txt
搜索不含the的行
grep -vn 'the' a.txt
利用[]来搜索集合字符,搜索tast或test的行
grep -n 't[ae]st' a.txt
搜索不含以g开头,含有oo的行
#grep -n '[^g]oo' a.txt
google is the best tools for search keyword (因为tools有包含oo,所以也提取出来)
gooooooogle yes (虽然以goo开头,但是后面还有好几个oo,刚好适合)
hehe ooo
查找不以小写开头含oo的行
grep -n '[^a-z]oo' a.txt
查找含有数字的行
grep -n '[0-9]' a.txt
查找以the开头的行
grep -n '^the' a.txt
查找以小写开头的行
grep -n '^[a-z]' a.txt
查找不以英文字母开头的行
grep -n '^[^a-zA-Z]' a.txt
查找行尾为小数点(.) 的行
grep -n '\.$' a.txt
找出空行
grep -n '^$' a.txt
任意一个字符(.) 与 重复字符(*)
通配符(*)可以用来代表任意(0或多个)字符。但是正则表达式并不是通配符。
正则表达式中*表示重复0个或多个前面的RE字符.
因此(o*)表示拥有空字符或者至少一个o及多个o以上的字符
(ooo*) 代表至少有两个o或者两个o以上的字符
查找包含4个字符,以g和d结尾的单词的行
grep -n 'g..d' a.txt
查找出g开头与g结尾的字符串,当中的字符可有可无。
grep -n 'g*g' a.txt
结果不是我们要的,因为这样的话是查找含有0个或多个g开头的,然后接着g,也就是g gg ggg gggg都可以的行
.可以代表任意字符,因此可以这样子
grep -n 'g.*g' a.txt
这样就可以查找出想要的。
查找任意数字的行
grep -n '[0-9][0-9]*' a.txt
限定连续重复字符范围{}
* 代表0个到无限个字符,{}却可以限定几个字符或范围
查找2个o的行
grep -n 'o\{2\}' a.txt
查找2个到5个o的行
grep -n 'o\{2,5\}' a.txt
查找2个o以上的行 以下两种方法均可以
grep -n 'ooo*' a.txt
grep -n 'o\{2,\}' a.txt
阅读(890) | 评论(0) | 转发(0) |