grep(globalsearchregularexpression(RE)andprintouttheline,综合搜索正则表达式并打印出行)是一个强大的文本搜索工具,可以使用正则表达式来搜索文本,以及打印出匹配的行。用于过滤/搜索的特定字符。正则表达式可以与多种命令结合使用,使用起来非常灵活。命令格式grep[options][pattern][file...]commandfunctionspecificcharactersforfiltering/searchingoptions-a--text#不要忽略二进制数据。-A<显示行数>--after-context=<显示行数>#除了显示符合模板样式的行,还显示该行之后的内容。-b--byte-offset#在匹配模板样式的行之外,显示该行之前的内容。-B<显示行数>--before-context=<显示行数>#除了显示符合样式的行,还显示该行之前的内容。-c--count#统计符合模板样式的列数。-C<显示行数>--context=<显示行数>or-<显示行数>#除了显示符合模板样式的列外,还要显示列前后的内容。-d--directories=#当指定要搜索的目录不是文件时必须使用该参数,否则grep命令会报信息并停止动作。-e--regexp=#指定一个字符串作为查找文件内容的模板样式。-E--extended-regexp#使用模板样式作为扩展的普通表达式,也就是说可以使用扩展的正则表达式。-f--file=#指定模板文件,其内容有一个或多个模板样式,让grep找到满足模板条件的文件内容,格式为每一个的模板样式柱子。-F--fixed-regexp#将模板样式视为固定字符串列表。-G--basic-regexp#将模板样式视为普通表达式。-h--no-filename#在显示符合模板样式的列之前,不标明该列所属的文件名。-H--with-filename#在显示符合模板样式的列之前,标记该列的文件名。-i--ignore-case#忽略字符大小写的差异。-l--file-with-matches#列出内容与指定模板样式匹配的文件名。-L--files-without-match#列出内容与指定模板样式不匹配的文件名。-n--line-number#在显示符合模板样式的行之前,标记行号。-P--perl-regexp#PATTERN是一个Perl正则表达式-q--quiet或--silent#不显示任何信息。-R/-r--recursive#该参数的作用与指定“-drecurse”参数相同。-s--no-messages#不显示错误信息。-v--revert-match#反转匹配。-V--version#显示版本信息。-w--word-regexp#只显示匹配所有单词的列。-x--line-regexp#只显示匹配所有列的列。-y#该参数与“-i”作用相同。-o#只输出文件中匹配的部分。-m--max-count=#找到num行结果后停止搜索,用于限制匹配行数pattern^#锚行开头如:'^grep'匹配所有以grep开头的行。$#锚行结尾如:'grep$'匹配所有以grep结尾的行。.#匹配不是换行符的字符例如:'gr.p'匹配gr后跟任何字符,然后是p。*#匹配零个或多个前面的字符,例如:'*grep'匹配所有一个或多个空格后跟grep行。.*#一起使用代表任意字符。[]#匹配指定范围内的一个字符,如'[Gg]rep'匹配grep和grep。[^]#匹配一个不在指定范围内的字符,如:'1rep'匹配一个字母开头不包含A-R和T-Z的行,后面是rep。\(..\)#标记匹配字符,如'(love)',love标记为1。\<#锚定单词开头,如:'\#锚定一个词的结尾,例如'grep\>'匹配包含以grep结尾的词的行。x\{m\}#重复字符x,m次,如:'0{5}'匹配包含5个o的一行。x\{m,\}#重复字符x,至少m次,如:'o{5,}'至少匹配5行o。x\{m,n\}#重复字符x,最少m次,不超过n次,如:'o{5,10}'匹配5--10o行。\w#匹配字母数字字符,即[A-Za-z0-9],如:'G\w*p'匹配G后跟零个或多个字母数字字符,然后是p。\W#\w的倒置形式匹配一个或多个非单词字符,如点、句点等。\b#单词锁定字符,如:'\bgrep\b'只匹配grep。POSIX字符为了保持各国字符编码的一致性,POSIX(ThePortableOperatingSystemInterface)增加了特殊的字符类,比如[:alnum:]就是[A-Za-z0-9]的另一种写法。它们必须放在[]符号内才能成为正则表达式,例如[A-Za-z0-9]或[[:alnum:]]。除了fgrep,linux下的grep都支持POSIX字符类。[:alnum:]#alphanumericcharacters[:alpha:]#literalcharacters[:digit:]#digitalcharacters[:graph:]#non-emptycharacters(non-space,controlcharacters)[:lower:]#lowercasecharacters[:cntrl:]#控制字符[:print:]#非空字符(包括空格)[:punct:]#标点符号[:space:]#所有空白字符(换行、空格、制表符)[:upper:]#大写字符[:xdigit:]#十六进制数字(0-9,a-f,A-F)查找指定进程>ps-ef|grepjavaroot1693410Feb25?00:12:23java-jar演示。jarroot68912151021:42pts/200:00:00grep--color=autojava第一条记录是找到的进程;第二个结果是grep进程本身,而不是您要查找的实际进程。查找进程数>ps-ef|grep-cjava10>ps-ef|grepjava-c10在文件中查找关键字>catrumenz.txtrumenz.txtonetowqazredislinux123linuxxxxrumenz123789>grep"linux"rumenz.txtlinux123linuxxxx//-n显示行号>grep-n"linux"rumenz.txt6:linux1237:linuxxxx读取keywordsfromthefiletosearch//Texttobesearched>catrumenz.txtrumenz.txtonetowqazredislinux123linuxxxxrumenz123789//Multiplekeywordstobesearched>catk.txtlinuxredis>catrumenz.txt|grep-fk.txtredislinux123linuxxxx//显示行号>catrumenz.txt|grep-nfk.txt5:redis6:linux1237:linuxxxx输出rumenz.txt文件包含从k.txt文件中读取的关键字的内容行,-n显示行号从多个文件中查找关键字>grep"linux"rumenz.txtrumenz123.txtrumenz.txt:linux123rumenz.txt:linuxxxxrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100当有多个文件时,在输出查询信息内容行时,文件名会是在行首输出,将添加“:”作为标识符,用于从多个文件中搜索关键字,使用通配符//查找当前目录中所有以rumenz开头的文件>grep"linux"rumenz*rumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100rumenz.txt:linux123rumenz.txt:linuxxxx//查找当前目录下所有文件以.txt结尾的文件>grep"linux"*.txtk.txt:linuxrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:linux100rumenz.txt:linux123rumenz.txt:linuxxxxgrep不显示自己的进程>ps-ef|grepredis|grep-vgreproot143831?0Jan01:16:03/opt/redis-5.0.8/src/redis-server*:6379polkitd31977319410Jan11?01:14:22redis-server*:6379grep-vgrep不显示grep进程本身找出以r开头的行内容>catrumenz.txt|grep^rrumenz.txtredisrumenz找出不以r开头的行内容>catrumenz.txt|grep^[^r]onetowqazlinux123linuxxxx123789输出以3结尾的行内容>catrumenz.txt|grep3$linux123123显示包含li或23个字符的行内容>atrumenz.txt|grep-E"li|23"linux123linuxxxx123查找指定格式的文件显示所有文件在以.txt结尾的当前目录中,每个字符串包含至少3个连续小写字符的字符串>grep"[a-z]\{3\}"*.txtk.txt:linuxk.txt:redisrumenz123.txt:rumenz.txttrumenz123.txt:onerumenz123.txt:towrumenz123。txt:qazrumenz123.txt:redisrumenz123.txt:linux123rumenz123.txt:linuxxxxrumenz123.txt:rumenzrumenz123.txt:linux100rumenz.txt:rumenz.txttrumenz.txt:onerumenz.txt:towrumenz.txt:qazrumennz.txt:redisrumenz.txt:linux123rumenz.txt:linuxxxxrumenz.txt:rumenz递归查找符合条件的文件>grep-rl"rumenz"/root/test//root/test/src/sbin/patch.log/root/test/src/doc/rumenz.txt/root/test/src/doc/rumenz123.txt/root/test/src/InfiniteLoop.class/root/test/src/InfiniteLoop.java找到rumenz.txt包含的前2行linuxline>grep-B2"linux"rumenz.txtqazredislinux123linuxxxx在rumenz.txt中查找linux行的最后两行>grep-A2"linux"rumenz.txtlinux123linuxxxxrumenz123在rumenz中查找linux行的前后两行.txt每行2行>grep-C2"linux"rumenz.txtqazredislinux123linuxxxxrumenz123原文链接:https://rumenz.com/rumenbiji/...微信公众号:linux入门常用命令速查手册PDF下载3669页vim参考手册PDF下载阿里云ECS运维Linux系统诊断PDF下载Docker快速参考手册PDF下载Linux学习笔记【强大总结值得一读】PDF下载shell简明教程PDF下载A-FH-Z?