linux下grep命令是用来做什么呢?怎样使用?
Admin 2021-10-16 群英技术资讯 857 次浏览
linux下grep命令是用来做什么呢?日常工作中,grep命令的使用是非常多的,grep命令是用来查找文件或标准输出中匹配的行,它的强大之处在于它支持正则表达式。因此这篇文章就和大家聊一聊linux下的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.timezone date.timezone = PRC
grep支持在多个文件中查找
# 这里我们加上-n选项,输出文件的行号 # grep -in stdio itoa.c quicksort.c itoa.c:2:#include <stdio.h> quicksort.c:1:#include <stdio.h>
反向选择的-v使用,当我运行了一个程序,想要看看这个程序是否还存在进程中,可以使用下面的方法
# ps aux | grep curl.php root 14374 98.3 1.2 277844 12396 pts/0 R+ 07:54 1:07 php curl.php root 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 root 353
经常有这种需求,需要批量替换文件中的某文本,那么怎么知道这些文本在哪几个文件中呢。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命令的相关介绍啦,对于grep命令的使用,大家可以参考本文示例。如果还想要了解更多Linux系统下其他命令的使用,可以继续浏览群英网络其他相关的文章。
文本转载自PHP中文网
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
8种常用包管理有:1、DPKG,Debian系的包管理系统;2、apt,Debian、Ubuntu上的包管理系统;3、apt-cache,一个apt软件包管理工具;4、RPM,红帽系的包管理系统;5、yum,一个解决包依赖关系而存在的软件包管理器;6、DNF,新一代的rpm软件包管理器;7、pkg,FreeBSD默认使用的包管理器;8、Pacman,Arch系的包管理系统。
linux下文件分割可以通过split命令来实现,可以将一个大文件拆分成指定大小的多个文件,并且拆分速度非常的快,可以指定按行数分割和安大小
linux系统怎么判断路由转发功能是否开启?linux系统可以直接查看路由器转发功能是否打开了,显示数字1是打开路由器转发,显示数字0,路由器转发功能未曾打开,下面我们就来看看详细的步骤
这篇文章主要介绍了Linux系统下复制用户信息的方法,想要了解详细内容,可以看看小编所整理的资料,感兴趣的小伙伴千万不要错过了。
这篇文章主要介绍了在linux下使用mysql详情,基于使用python的django框架设计系统的UI部分,对使用到MySQL的地方做一个简单记录,具有一的的参考价值,需要的小伙伴可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008