Linux三剑客:grep、awk、sed
2024-10-07 02:02:09
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
awk、grep、sed是linux操作文本的三大利器,合称文本三剑客。三者的功能都是处理文本,但侧重点各不相同,其中属awk功能最强大,但也最复杂。grep更适合单纯的查找或匹配文本,sed更适合编辑匹配到的文本,awk更适合格式化文本,对文本进行较复杂格式处理。
1、grep
认识grep和egrep
grep(Global Regular Expression Print)表示全局正则表达式版本,它的使用权限是所有用户。它能使用正则表达式搜索和过滤文本,并把匹配的行打印出来。
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。我们利用这些返回值就可进行一些自动化的文本处理工作。
egrep(extend 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* *
最新文章
- oracle性能优化之表设计
- codeforces 712B. Memory and Trident
- 关于IAP的破解
- CSS中如何将li横向排列
- uva 1482 - Playing With Stones
- 学习手机游戏开发的两个方向 Cocos2d-x 和 Unity 3D/2D,哪个前景更好?
- HttpWebResponse远程服务器返回错误: (500) 内部服务器错误
- APUE-文件和目录(三)函数chown 和lchown
- [转载] Mahout
- Nexus 6P 解锁+TWRP+CM
- .Net Remoting 调用远程对象
- 小容量的byteBuffer 读取大文本
- 转://WITH AS and materialize hints
- 【强化学习】用pandas 与 numpy 分别实现 q-learning, saras, saras(lambda)算法
- win8共享文件设置 详细教程
- Elasticsearch 学习之配置文件详解
- vue制作小程序--server
- dojo表格操作的简单示例(建立表格)
- TortoiseSVN里锁lock 的使用方法
- Vi 的常用命令