grep 十则技巧

本文发布时间: 2019-Mar-22
warning:文中提到的选项如果posix未指定,会特殊说明。   多个关键字查找   . 关键字间 or i. 使用-e  #包含了string.h或者stdlib.h的头文件grep -l -e 'string.h' -e 'stdlib.h' /usr/include/*.h  -e 选项还可以避免 关键字是-开头的导致选项解读失败。  ii. 使用元字符 |  grep 'strint.h|stdlib.h' /usr/include/*.h #使用-E 看着舒服grep -E 'string.h|stdlig.h' /usr/include/*.h  iii. 使用-f file cat >multi_pattern stdlib.h string.h grep -l -f multi_pattern /usr/include/*.h   . 关键字间 and i. 通过管道  #同时包含'hello','world'的行echo hello world | grep '<hello>' | grep '<world>'  ii. 通过正则 |  grep -E 'pattern .*pattern |pattern .*pattern '  如果包含个关键字还好,要是n个就有n!种可能!   . 单词匹配i. -w(gnu 选项)  grep -w 'main' /usr/include/*.h  这个-w很方便ii. <> grep '<main>' /usr/include/*.h   .善用 -E -E选项启用 extended expression,正则写起来更加灵活#查看gcc帮助文件里两个the/that/and/or连在一起的行man gcc | grep -E '(<the>|<that>|<and>|<or>) ' man gcc | grep -E -w '(the|that|and|or) ' #查看gcc帮助文件里含两个连续单词的行man gcc | grep -E -w '([a-zA-Z]+) '  使用-E让书写更方便,省去很多的,同时功能更强大。   忽略大小写 -i #查看INT_MAX的值grep -i 'int_max' /usr/include/limits.h  -i与n同时使用的乱象#匹配连续相同单词echo 'it IT' | grep -i -w -E '([a-z]+) ' echo 'it IT' | grep -E -w '([a-zA-Z]+) '  这是两个相同的单词吗?是的,因为告诉grep不计大小写的!  有的时候不要光图方便会不准确。   递归查找 -r(posix 未说明)  #查看日志的错误信息grep -i -w -r -E 'error|failed|failure' /var/log |less   显示匹配行周围行 (posix 未说明)  B/A/C(before/after/context -B n -A n -C n   取反-v grep -v -w 'hello' filename  如果没有取反,世界将不再美丽   匹配数 -c echo aaaa | grep -c 'a'  这个输出是!因为grep是行匹配的   输出文件名 -l  grep -l -r -i -w 'filename_max' /usr/include/*.h   只输出匹配部分-o (gnu 选项)  echo abcddf |grep -o 'dd'  可以用于验证自己写的正则  如果出现错误或不准确,感谢指出。


(以上内容不代表本站观点。)
---------------------------------
本网站以及域名有仲裁协议。
本網站以及域名有仲裁協議。

2024-Mar-04 02:11pm
栏目列表