-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。

1、grep

认识grep和egrep

grepGlobal Regular Expression Print)表示全局正则表达式版本,它的使用权限是所有用户。它能使用正则表达式搜索和过滤文本,并把匹配的行打印出来。

grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。

egrepextend grep) = grep -E:扩展的正则表达式 (除了\< , \> , \b 使用其他正则都可以去掉\)

命令格式

grep [option] pattern file

命令参数

  • -A<显示行数>:除了显示符合范本样式的那一列之外,并显示该行之后的内容。
  • -B<显示行数>:除了显示符合样式的那一行之外,并显示该行之前的内容。
  • -C<显示行数>:除了显示符合样式的那一行之外,并显示该行之前后的内容。
  • -c:统计匹配的行数
  • -e :实现多个选项间的逻辑or 关系
  • -E:扩展的正则表达式 (extend grep)
  • -f :从FILE获取PATTERN匹配
  • -F:相当于fgrep (fast grep)
  • -i : #忽略字符大小写的差别。
  • -l :列出文件内容符合指定的样式的文件名称。
  • -n:显示匹配的行号
  • -o:仅显示匹配到的字符串
  • -q: 静默模式,不输出任何信息
  • -r: 递归查找,包括当前目录和子目录
  • -s:不显示错误信息。
  • -v:显示不被pattern 匹配到的行,相当于[^] 反向匹配
  • -w :匹配 整个单词

实例演示

# 递归查找部分匹配DoAdd函数的C/C++文件名
grep -lnr "DoAdd" * --include=*.c* # 在C/C++文件中递归查找部分匹配 grep.txt文件中的内容 或 DoReg 关键字的记录
grep -nrf grep.txt -e "DoReg" --include=*.c* *

最新文章

  1. oracle性能优化之表设计
  2. codeforces 712B. Memory and Trident
  3. 关于IAP的破解
  4. CSS中如何将li横向排列
  5. uva 1482 - Playing With Stones
  6. 学习手机游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好?
  7. HttpWebResponse远程服务器返回错误: (500) 内部服务器错误
  8. APUE-文件和目录(三)函数chown 和lchown
  9. [转载] Mahout
  10. Nexus 6P 解锁+TWRP+CM
  11. .Net Remoting 调用远程对象
  12. 小容量的byteBuffer 读取大文本
  13. 转://WITH AS and materialize hints
  14. 【强化学习】用pandas 与 numpy 分别实现 q-learning, saras, saras(lambda)算法
  15. win8共享文件设置 详细教程
  16. Elasticsearch 学习之配置文件详解
  17. vue制作小程序--server
  18. dojo表格操作的简单示例(建立表格)
  19. TortoiseSVN里锁lock 的使用方法
  20. Vi 的常用命令

热门文章

  1. 远程发送文件失败(scp)
  2. C# 函数返回多个值的方法
  3. 在 Windows 10 上用超级终端配置 Cisco 3560 Series
  4. Linux 基础整理
  5. Emgu 学习笔记(8)之膨胀腐蚀
  6. Tomcat开机自启动,通过服务名重启
  7. analyticdb(ADB) group by 用法小结
  8. 【STM32】NVIC中断优先级管理
  9. win32 API 笔记1
  10. Shell初学(七)linux账户管理/群组管理