Linux的那些事儿(10)----grep命令以及正则表达式

grep(全局正则表达式版本)允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。grep支持基本正则表达式,也支持其扩展集。grep有三种变形,即:
grep:标准grep命令,本章大部分篇幅集中讨论此格式。
egrep:扩展grep,支持基本及扩展的正则表达式,但不支持/ q模式范围的应用,与之相对应的一些更加规范的模式,这里也不予讨论。
fgrep:快速grep。允许查找字符串而不是一个模式。不要误解单词fast,实际上它与grep速度相当。

一、grep的格式

grep [选项]基本正则表达式[文件]

1、显示包含“48”字符串 $grep -c "48" data.f

2、显示满足匹配模式的所有行行数 $grep -n "48" data.f

3、显示不包含48的所有行 $grep -v "48" data.f

4、精确匹配,只含有48的所有行 $grep  "48/>" data.f

5、大小写敏感,缺省情况下, grep是大小写敏感的,如要查询大小写不敏感字符串,必须使用- i开关。

$grep -i "sept" data.f

二、grep和正则表达式

使用正则表达式使模式匹配加入一些规则,因此可以在抽取信息中加入更多选择。使用正则表达式时最好用单引号括起来,这样可以防止grep中使用的专有模式与一些shell命令的特殊方式相混淆。

1、模式范围:假定要抽取代码为484和483的城市位置 $grep '48[34]' data.f

2、不匹配行首:$grep '^[^48]' data.f

3、设置大小写:$grep '[Ss]ept' data.f

三、系统grep命令

1、如果要查询目录列表中的目录,方法如下:$ls -l |grep '^d'

2、如果在一个目录中查询不包含目录的所有文件,方法如下:$ls -l |grep '^[^d]'

3、要查询其他用户和其他用户组成员有可执行权限的目录集合,方法如下:$ls -l |grep '^d.....x..x'

四、小结

希望大家已经理解了grep的灵活性,它是一个很强大而流行的工具,像其他许多UNIX工具一样,已经被使用在DOS中。如果要通过文件快速查找字符串或模式, grep是一个很好的选择。简单地说, grep是shell编程中很重要的工具。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值