grep新手上路 走起

312 阅读2分钟

www.zsythink.net/archives/17…

grep命令能做什么?

查找指定的字符串,就像 Ctrl+F

grep与sed、awk合称为Linux中的三剑客。有时间可以再学习剩余的两个

grep是一个可以利用”正则表达式”进行”全局搜索”的工具,当然不使用正则表达式时也可以使用grep,但是当grep与正则表达式结合在一起时,威力更强大。

cat package.json // 输出package.json文件全部文件内容
grep "storage" package.json // 输出package.json文件匹配到'storage'的那一行的内容,默认区分大小写的
grep "storage" package.json -i  // ”-i”  不区分大小写  位置放在哪里都可以
grep "storage" package.json -n  // ”-n”  显示文本所在的行号

grep 'xxx' web.log | tail -1   //  查询匹配到的最后一条



// 下面就简单写

-–color   //  高亮   两个-
-c   // 输出匹配到的总行数
-o   // 只是输出匹配到的文案  这种我个人理解用正则的话会比较有用,字符串的查询的话,那肯定都一样的


-B  "B"有before之意【之前】, -B5″代表同时显示之前的5行,”-B3″代表同时显示之前的3行,”-B”选项的后面必须有数字,否则会报错。

-A "-A"有After之意【之后】,

大写AB表示 之前之后,小写ab就是前后都包括了,我试了一下,输出是不一样的,不信可以试试

-w   ”-w”有word之意  精确匹配,

-v  查找”不包含某个字符串”的行  除了你查询的都输出打印了

-e  使用”-e”选项可以同时匹配多个目标,类似连接符号了,就是多个查询条件被  grep package.json  -e 'a' -e'b' --color


-q:静默模式, 配合 使用”echo $?,”查看是否匹配到,只关心有没有匹配到而已,0表示匹配到,1表示没有匹配到。


-P:表示使用兼容perl的正则引擎。

-E:使用扩展正则表达式,而不是基本正则表达式,在使用”-E”选项时,相当于使用egrep。