grep

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 t ools for search keyword (因为tools有包含oo,所以也提取出来)
goooo ooogle   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 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值