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编程中很重要的工具。

更多相关文章

  1. Emacs 快速参考 c-c++ 模式
  2. 设置STDIN_FILENO为非阻塞模式
  3. Linux 多线程 ”一写多读” 模式下的无锁设计
  4. linux下mysql表名大小写敏感问题
  5. 如果在两个模式中存在具有相似名称的删除表
  6. 既然sql对大小写不敏感,为什么几乎所有材料都用大写?
  7. 如何在SQL Server数据库模式中找到所有填充了100%空值的列?
  8. MySQL中的字符串模式匹配
  9. mysql表名忽略大小写

随机推荐

  1. android 本地数据库sqlite的封装
  2. 【收藏】android WebView总结
  3. Android(安卓)GPS 定位的实现(1)
  4. Android20_广播机制(一)
  5. android stuido的aar文件怎么使用
  6. Android Recovery
  7. Android——AndroidStudio配置NDK步骤
  8. android 语言定制
  9. TextView中ellipsize属性
  10. android点滴(23)之android监听应用卸载