grep
grep(global regular expression print
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
参数多;常用的也多
文件可给多个,也可给正则匹配的文件/目录
参数详解
-v –invert-match 取没有匹配的行
-w –word-regexp 只选择匹配上整个 words
-i ,–ignore-case 忽略Pattern 和文件内容的大小写
-e:多个-e 可以用来描述多个不同的匹配模式 ;or
-A :输出匹配行之后的num行
-B:
grep pattern1 | pattern2 files :显示匹配 pattern1 或 pattern2 的行,
grep pattern1 files | grep pattern2 :显示既匹配 pattern1 又匹配 pattern2 的行
-E 增强正则 类似于egrex ERE
-P –perl-regex 将Pattern 理解成一个Perl 正则表达式,
-f FILE ,–file=FILE 从FILE中获得匹配的数据 ,
-n –line-number 显示行号
-c 输出计数后的几行
-C NUM–context=NUM 表示前后各NUM行
--color=auto
高阶:
-F(fgrep) 参数表示将 pattern 解释成 一个单纯的文本 不解释成正则
和-E(egrep)正好相反: grep -E '219|216' data.doc
其他参数:
-I:不区分大 小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
<:从匹配正则表达 式的行开始。
>:到匹配正则表达式的行结束。
[ ]:单个字符,如[A]即A符合要求
more size.txt | grep '[bB]'
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名
grep 'root$' /etc/group 匹配正则表达式的结束行
more size.txt | grep -iv 'b1..*3' -v :查找不包含匹配项的行 (-i -i)
默认情况下,’grep’只搜索当前目录。如果 此目录下有许多子目录,’grep’会以如下形式列出:
grep magic /usr/src/Linux/Doc/*
明确要求搜索子目录:grep -r
或忽略子目录:grep -d skip
彩蛋:
find /public/ -name '*gz' 2>l
参考:https://blog.csdn.net/successdd/article/details/79088926?>
https://blog.csdn.net/shenhuan1104/article/details/75852822
不好:https://blog.csdn.net/poison_biti/article/details/75581410