全面详解linux下grep命令的用法

linux系统,grep这个命令是必须要掌握的。grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式。日常工作中,grep绝对是用的最多的命令之一。

注:本文只介绍grep的用法,关于正则表达式不做介绍。

下面来看看它的一些常见选项以及含义:

选项

-i    搜索时候忽略大小写    

-n    列出所有的匹配行,显示行号    

-v    反向选择    

-c    只输出匹配行的数量    

-l    只列出符合匹配的文件名,不列出具体的匹配行    

-h    查询多文件时不显示文件名    

-r    递归搜索    

-q    禁止输出任何结果,已退出状态表示搜索是否成功    

–color=auto    将找到的关键字加上颜色显示    

-E, –extended-regexp    PATTERN 是一个可扩展的正则表达式(缩写为 ERE)    

-B, –before-context=NUM    打印以文本起始的NUM 行    

-A, –after-context=NUM    打印以文本结尾的NUM 行    

下面来介绍grep的一些用法:

我们知道php.ini有一个时区的配置,具体的不太清楚,只知道timezone,现在我们想找到该配置信息,就可以使用grep来查找

# 加上-i选项,忽略大小写# grep -i timezone /usr/local/php/etc/php.ini ; Defines the default timezone used by the date functions; http://php.net/date.timezonedate.timezone = PRC

grep支持在多个文件中查找

# 这里我们加上-n选项,输出文件的行号# grep -in stdio itoa.c quicksort.c itoa.c:2:#include quicksort.c:1:#include 

反向选择的-v使用,当我运行了一个程序,想要看看这个程序是否还存在进程中,可以使用下面的方法

# ps aux | grep curl.php root     14374 98.3  1.2 277844 12396 pts/0    R+   07:54   1:07 php curl.phproot     14404  0.0  0.0 112664   984 pts/2    R+   07:55   0:00 grep --color=auto curl.php

这里就有个问题,我们需要使用-v来过滤掉grep本身的进程

# ps aux | grep curl.php | grep -v grep root     14374 98.5  1.2 277844 12396 pts/0    R+   07:54   2:36 php curl.php

我们想统计last命令中含root的行数,那么这里就需要用到-c选项了。

# last | grep -c root353

经常有这种需求,需要批量替换文件中的某文本,那么怎么知道这些文本在哪几个文件中呢。grep可以做到,配合-l选项

# find . -type f -exec grep -l define {} \;./find.c./itoa2.c./wc.c./test.c./wordcnt.c./longestline.c./cal.c./sortline2.c./sortline.c./found.c./atof.c

下面再看一个例子,该例子用到了-E扩展正则,我们想要过滤掉php.ini文件中的注释行以及空白行

grep -vE '^;|^$' /usr/local/php/etc/php.ini

还有一个常用的选项-r,它可以用来递归查找当前目录下所有文件,以及子目录文件。下面,我们想查看网站目录下还有footer的文件有哪些,可以用下面的命令来查找

grep -rn footer ./

以上就是全面详解linux下grep命令的用法的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/164003.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年10月31日 22:07:18
下一篇 2025年10月31日 22:09:08

相关推荐

发表回复

登录后才能评论
关注微信