全面详解linux下grep下令的用途-linux运维
注:本文只介绍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:#includequicksort.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.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下令的用途的细致内容,更多请关注 百分百源码网 其它相干文章!