grep(globalsearchregularexpression(RE)andprintouttheline,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤搜索的特定字符。可使用正则表达式能配合多种命令使用,使用上十分灵活。命令格式 grep〔options〕〔pattern〕〔file。。。〕命令功能 用于过滤搜索的特定字符optionsatext不要忽略二进制数据。A显示行数aftercontext显示行数除了显示符合范本样式的那一行之外,并显示该行之后的内容。bbyteoffset在显示符合范本样式的那一行之外,并显示该行之前的内容。B显示行数beforecontext显示行数除了显示符合样式的那一行之外,并显示该行之前的内容。ccount计算符合范本样式的列数。C显示行数context显示行数或显示行数除了显示符合范本样式的那一列之外,并显示该列之前后的内容。d进行动作directories动作当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。e范本样式regexp范本样式指定字符串作为查找文件内容的范本样式。Eextendedregexp将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。f范本文件file规则文件指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。Ffixedregexp将范本样式视为固定字符串的列表。Gbasicregexp将范本样式视为普通的表示法来使用。hnofilename在显示符合范本样式的那一列之前,不标示该列所属的文件名称。Hwithfilename在显示符合范本样式的那一列之前,标示该列的文件名称。iignorecase忽略字符大小写的差别。lfilewithmatches列出文件内容符合指定的范本样式的文件名称。Lfileswithoutmatch列出文件内容不符合指定的范本样式的文件名称。nlinenumber在显示符合范本样式的那一列之前,标示出该列的编号。PperlregexpPATTERN是一个Perl正则表达式qquiet或silent不显示任何信息。Rrrecursive此参数的效果和指定drecurse参数相同。snomessages不显示错误信息。vrevertmatch反转查找。Vversion显示版本信息。wwordregexp只显示全字符合的列。xlineregexp只显示全列符合的列。y此参数效果跟i相同。o只输出文件中匹配到的部分。mmaxcount找到num行结果后停止查找,用来限制匹配行数pattern锚定行的开始如:’grep’匹配所有以grep开头的行。锚定行的结束如:‘grep’匹配所有以grep结尾的行。。匹配一个非换行符的字符如:gr。p’匹配gr后接一个任意字符,然后是p。匹配零个或多个先前字符如:’grep’匹配所有一个或多个空格后紧跟grep的行。。一起用代表任意字符。〔〕匹配一个指定范围内的字符,如’〔Gg〕rep’匹配Grep和grep。〔〕匹配一个不在指定范围内的字符,如:’〔AFHZ〕rep’匹配不包含AR和TZ的一个字母开头,紧跟rep的行。(。。)标记匹配字符,如’(love)’,love被标记为1。锚定单词的开始,如:’grep’匹配包含以grep开头的单词的行。锚定单词的结束,如’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}匹配510个o的行。w匹配文字和数字字符,也就是〔AZaz09〕,如:Gwp’匹配以G后跟零个或多个文字或数字字符,然后是p。Ww的反置形式,匹配一个或多个非单词字符,如点号句号等。b单词锁定符,如:bgrepb’只匹配grep。POSIX字符 为了在不同国家的字符编码中保持一致,POSIX(ThePortableOperatingSystemInterface)增加了特殊的字符类,如〔:alnum:〕是〔AZaz09〕的另一个写法。要把它们放到〔〕号内才能成为正则表达式,如〔AZaz09〕或〔〔:alnum:〕〕。在linux下的grep除fgrep外,都支持POSIX的字符类。〔:alnum:〕文字数字字符〔:alpha:〕文字字符〔:digit:〕数字字符〔:graph:〕非空字符(非空格、控制字符)〔:lower:〕小写字符〔:cntrl:〕控制字符〔:print:〕非空字符(包括空格)〔:punct:〕标点符号〔:space:〕所有空白字符(新行,空格,制表符)〔:upper:〕大写字符〔:xdigit:〕十六进制数字(09,af,AF)查找指定进程psefgrepjavaroot1693410Feb25?00:12:23javajardemo。jarroot68912151021:42pts200:00:00grepcolorautojava 第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程。查找进程的个数psefgrepcjava10psefgrepjavac10查找文件中的关键词catrumenz。txtrumenz。txtonetowqazredislinux123linuxxxxrumenz123789greplinuxrumenz。txtlinux123linuxxxxn显示行号grepnlinuxrumenz。txt6:linux1237:linuxxxx从文件中读取关键词进行搜索待查找的文本catrumenz。txtrumenz。txtonetowqazredislinux123linuxxxxrumenz123789需要查找的多个关键词catk。txtlinuxrediscatrumenz。txtgrepfk。txtredislinux123linuxxxx显示行号catrumenz。txtgrepnfk。txt5:redis6:linux1237:linuxxxx 输出rumenz。txt文件中含有从k。txt文件中读取出的关键词的内容行,n显示行号从多个文件中查找关键词greplinuxrumenz。txtrumenz123。txtrumenz。txt:linux123rumenz。txt:linuxxxxrumenz123。txt:linux123rumenz123。txt:linuxxxxrumenz123。txt:linux100 多文件时,输出查询到的信息内容行时,会把文件的命名在行最前面输出并且加上:作为标示符从多个文件中查找关键词,使用通配符查找当前目录下所有以rumenz开头的文件greplinuxrumenzrumenz123。txt:linux123rumenz123。txt:linuxxxxrumenz123。txt:linux100rumenz。txt:linux123rumenz。txt:linuxxxx查找当前目录下所有以。txt结尾的文件greplinux。txtk。txt:linuxrumenz123。txt:linux123rumenz123。txt:linuxxxxrumenz123。txt:linux100rumenz。txt:linux123rumenz。txt:linuxxxxgrep不显示本身进程psefgrepredisgrepvgreproot1438310Jan08?01:16:03optredis5。0。8srcredisserver:6379polkitd31977319410Jan11?01:14:22redisserver:6379 grepvgrep不显示grep进程本身找出以r开头的行内容catrumenz。txtgreprrumenz。txtredisrumenz找出非r开头的行内容catrumenz。txtgrep〔r〕onetowqazlinux123linuxxxx123789输出以3结尾的行内容catrumenz。txtgrep3linux123123显示包含li或者23字符的内容行atrumenz。txtgrepEli23linux123linuxxxx123查找指定格式的文件 显示当前目录下面以。txt结尾的文件中的所有包含每个字符串至少有3个连续小写字符的字符串的行grep〔az〕{3}。txtk。txt:linuxk。txt:redisrumenz123。txt:rumenz。txtrumenz123。txt:onerumenz123。txt:towrumenz123。txt:qazrumenz123。txt:redisrumenz123。txt:linux123rumenz123。txt:linuxxxxrumenz123。txt:rumenzrumenz123。txt:linux100rumenz。txt:rumenz。txtrumenz。txt:onerumenz。txt:towrumenz。txt:qazrumenz。txt:redisrumenz。txt:linux123rumenz。txt:linuxxxxrumenz。txt:rumenz以递归的方式查找符合条件的文件greprlrumenzroottestroottestsrcsbinpatch。logroottestsrcdocrumenz。txtroottestsrcdocrumenz123。txtroottestsrcInfiniteLoop。classroottestsrcInfiniteLoop。java查找rumenz。txt中包含linux行的前2行grepB2linuxrumenz。txtqazredislinux123linuxxxx查找rumenz。txt中包含linux行的后2行grepA2linuxrumenz。txtlinux123linuxxxxrumenz123查找rumenz。txt中包含linux行的前后各2行grepC2linuxrumenz。txtqazredislinux123linuxxxxrumenz123 原文链接:https:rumenz。comrumenbijilinuxgrep。html 微信公众号:入门小站