17、grep(Global Regular Expression Print)常用参数

简介: 1、Usage: grep [OPTION]... 'PATTERN' [FILE]... Search for PATTERN in each FILE or standard input. PATTERN is, by default, a basic regular expression (BRE). Example: grep -i 'hello world' menu.h main.c 2、常用参数【option】 1)-E,--extended-regexp 采用扩展表示式去解释样式。

1、Usage: grep [OPTION]... 'PATTERN' [FILE]...

Search for PATTERN in each FILE or standard input.

PATTERN is, by default, a basic regular expression (BRE).

Example: grep -i 'hello world' menu.h main.c

2、常用参数【option

1)-E--extended-regexp

采用扩展表示式去解释样式。

-i, --ignore-case        ignore case distinctions

-v, --invert-match        select non-matching lines

ps -ef | grep '^td*' | grep -v 'grep' | wc -l //-v 'grep'的排除项可以多个,用|连接

ps -aux

2)-c :打印匹配的行数

-n:打印包含匹配项的行和行标

-l:查询多文件时只输出包含匹配字符的文件名。

-r:递归查询子目录

-q,-quiet:取消显示,只返回退出状态。0表示找到了匹配的行。

-?:显示匹配行上下?行,如:grep -2 pattern filnam 显示匹配行的上下2行(为-C选项)

-s,–silent:不显示关于不存在或者无法读取文件的错误信息

-w,--word-regexp,匹配整个单词,cat test | grep -w zhan

-x:匹配整行。

-H, --with-filename:当搜索多个文件时,显示匹配文件名前缀

-o Print only the matched (non-empty) parts of a matching line, with each such part on 

a separate output line.

grep -l pattern files :只列出匹配的文件名。

grep -L pattern files :列出不匹配的文件名。

grep -w pattern files :只匹配整个单词,而不是字符串的一部分(如匹配'magic',而不是'magical')

grep pattern1 | pattern2 files //或关系

grep pattern1 files | grep pattern2 //相当于与关系

3、pattern

正则表达式

4、示例

grep -c '^$' test.txt  //查找空行的行数

grep 'test' d*  //显示所有以d开头的文件中包含test的行。

grep 'test' aa bb cc //显示在aabbcc文件中匹配test的行。

grep '[a-z]\{5\}' aa //显示所有包含每个字符串至少有5个连续小写字符的字符串的行。

grep '\<man' me.txt //要求词首是man

grep '\<man\>' me.txt //只匹配man

grep -rin me.txt `ls | grep -vE 'bin|boot|dev|initrd|lib'` //

cat test |grep '^\(root\|zhang\)' //匹配首单词是rootzhang的行

5、复杂一点

$ grep 'w\(es\)t.*\1' aa

    如果west被匹配,则es就被存储到内存中,并标记为1,然后搜索任意个字符(.*),这些字符后面紧跟着另外一个es(\1),找到就显示该行。如果用egrepgrep -E,就不用”\”号进行转义,直接写成’w(es)t.*\1′就可以了。

默认情况下,'grep'只搜索当前目录;如果此目录下有许多子目录,用:

明确要求搜索子目录:grep -r

或忽略子目录:grep -d skip

来进行。

6、[split] 分割文件 [paste] 以行连接文件 [join] 以字段连接文件 [grep] 查询文字 [uniq] 过滤重复部分显示文件内容 [tr] 替换文字 [sed] 替换文字

7、我们发现,grep的很多选项的字母大小写具有相反的含义,如-H表示搜索多文件时列出匹配行前的文件名,而-h则不列出;

参考

1】 详解

http://blog.csdn.net/greytree/article/details/428532

2man手册

3http://blog.sina.com.cn/s/blog_4af3f0d20100etjv.html

4http://www.9usb.net/200902/linux-grep.html

5http://www.cppblog.com/jb8164/archive/2007/12/21/39187.html

6http://blog.microsuncn.com/?p=1239

7】对grep的常用命令进行了翻译,并给出了详细的例子:

http://blog.51yip.com/linux/1008.html

目录
相关文章
|
3月前
|
人工智能 IDE API
还在配置规则文件和智能体?Roo Commander:预置90+领域专家,开箱即用的AI编程新体验
Roo指挥官是一款创新AI编程助手,通过智能调度90多位虚拟技术专家,实现对复杂项目的自主规划与高效执行。用户无需手动选择专家或反复调整提示,只需提交需求,系统即可自动分析、拆解任务并协调最合适的技术角色完成开发。文中以构建3D互动简历为例,展示了其从需求分析到项目落地的全流程自动化能力,显著提升开发效率,开启AI驱动的智能化编程新体验。
167 0
|
网络协议 安全 网络安全
路由与交换系列之GRE VPN 技术原理笔记分享
GRE VPN 技术原理笔记分享
1345 0
|
弹性计算 负载均衡 网络协议
负载均衡(SLB)使用最佳实践
负载均衡(Server Load Balancer,下文简称 SLB)的引入,可以降低单台云服务器 ECS(下文简称 ECS)出现异常时对业务的冲击,提升业务的可用性。同时,结合弹性伸缩服务,通过动态调整后端服务器,可以快速对业务进行弹性调整(扩容或缩容),以快速应对业务的发展。
14692 0
|
4月前
|
机器学习/深度学习 监控 自动驾驶
基于YOLOv8的交通标识及设施识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
本项目基于YOLOv8与PyQt5,打造交通标识及设施智能识别系统。支持图像、视频、摄像头输入,可检测人行横道、限速标志、停车标志和交通信号灯。提供完整源码、数据集、权重文件与训练教程,开箱即用,适合多场景应用。系统具备高精度、实时性强、部署便捷等优势,助力智能交通与自动驾驶发展。
基于YOLOv8的交通标识及设施识别项目|完整源码数据集+PyQt5界面+完整训练流程+开箱即用!
|
7月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA遗传优化TCN-LSTM时间卷积神经网络时间序列预测算法matlab仿真
本项目基于MATLAB 2022a实现了一种结合遗传算法(GA)优化的时间卷积神经网络(TCN)时间序列预测算法。通过GA全局搜索能力优化TCN超参数(如卷积核大小、层数等),显著提升模型性能,优于传统GA遗传优化TCN方法。项目提供完整代码(含详细中文注释)及操作视频,运行后无水印效果预览。 核心内容包括:1) 时间序列预测理论概述;2) TCN结构(因果卷积层与残差连接);3) GA优化流程(染色体编码、适应度评估等)。最终模型在金融、气象等领域具备广泛应用价值,可实现更精准可靠的预测结果。
|
6月前
|
人工智能 边缘计算 前端开发
人工智能平台 PAI DistilQwen2.5-DS3-0324发布:知识蒸馏+快思考=更高效解决推理难题
DistilQwen 系列是阿里云人工智能平台 PAI 推出的蒸馏语言模型系列,包括DistilQwen2、DistilQwen2.5、DistilQwen2.5-R1 等。DistilQwen2.5-DS3-0324 系列模型是基于 DeepSeek-V3-0324 通过知识蒸馏技术并引入快思考策略构建,显著提升推理速度,使得在资源受限的设备和边缘计算场景中,模型能够高效执行复杂任务。实验显示,DistilQwen2.5-DS3-0324 系列中的模型在多个基准测试中表现突出,其32B模型效果接近参数量接近其10倍的闭源大模型。
|
4月前
|
人工智能 供应链 小程序
软件外包众包平台为何没有前途?深度剖析行业顽疾优雅草卓伊凡
软件外包众包平台为何没有前途?深度剖析行业顽疾优雅草卓伊凡
173 2
软件外包众包平台为何没有前途?深度剖析行业顽疾优雅草卓伊凡
|
XML 缓存 前端开发
springMVC02,restful风格,请求转发和重定向
文章介绍了RESTful风格的基本概念和特点,并展示了如何使用SpringMVC实现RESTful风格的请求处理。同时,文章还讨论了SpringMVC中的请求转发和重定向的实现方式,并通过具体代码示例进行了说明。
springMVC02,restful风格,请求转发和重定向
|
存储 JSON JavaScript
使用JSONObject解析与生成JSON数据
使用JSONObject解析与生成JSON数据
|
机器学习/深度学习 人工智能 自然语言处理
python量化学习路线
python量化学习路线
575 0