Linux grep命令怎么使用(grep,linux,开发技术)

时间:2024-04-28 12:40:34 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

Linux常用命令grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。用于过滤/搜索的特定字符。可使用正则表达式能配合多种命令使用,使用上十分灵活。

Linux grep命令怎么使用

grep

强大的文本搜索工具

选项

-a--text#不要忽略二进制数据。-A--after-context=#除了显示符合范本样式的那一行之外,并显示该行之后的内容。-b--byte-offset#在显示符合范本样式的那一行之外,并显示该行之前的内容。-B--before-context=#除了显示符合样式的那一行之外,并显示该行之前的内容。-c--count#计算符合范本样式的列数。-C--context=或-#除了显示符合范本样式的那一列之外,并显示该列之前后的内容。-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行结果后停止查找,用来限制匹配行数

规则表达式

^#锚定行的开始如:'^grep'匹配所有以grep开头的行。$#锚定行的结束如:'grep$'匹配所有以grep结尾的行。.#匹配一个非换行符的字符如:'gr.p'匹配gr后接一个任意字符,然后是p。*#匹配零个或多个先前字符如:'*grep'匹配所有一个或多个空格后紧跟grep的行。.*#一起用代表任意字符。[]#匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。[^]#匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含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--10个o的行。\w#匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。\W#\w的反置形式,匹配一个或多个非单词字符,如点号句号等。\b#单词锁定符,如:'\bgrep\b'只匹配grep。

grep命令常见用法

在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行:

grepmatch_patternfile_namegrep"match_pattern"file_name

在多个文件中查找:

grep"match_pattern"file_1file_2file_3...

输出除之外的所有行 -v 选项:

grep-v"match_pattern"file_name

标记匹配颜色 –color=auto 选项:

grep"match_pattern"file_name--color=auto

使用正则表达式 -E 选项:

grep-E"[1-9]+"#或egrep"[1-9]+"

使用正则表达式 -P 选项:

grep-P"(\d{3}\-){2}\d{4}"file_name

只输出文件中匹配到的部分 -o 选项:

echothisisatestline.|grep-o-E"[a-z]+\."line.echothisisatestline.|egrep-o"[a-z]+\."line.

统计文件或者文本中包含匹配字符串的行数 -c 选项:

grep-c"text"file_name

输出包含匹配字符串的行数 -n 选项:

grep"text"-nfile_name#或catfile_name|grep"text"-n#多个文件grep"text"-nfile_1file_2

打印样式匹配所位于的字符或字节偏移:

echogunisnotunix|grep-b-o"not"7:not#一行中字符串的字符便宜是从该行的第一个字符开始计算,起始值为0。选项**-b-o**一般总是配合使用。

搜索多个文件并查找匹配文本在哪些文件中:

grep-l"text"file1file2file3...

grep递归搜索文件

在多级目录中对文本进行递归搜索:

grep"text".-r-n#.表示当前目录。

忽略匹配样式中的字符大小写:

echo"helloworld"|grep-i"HELLO"#hello

选项 -e 制动多个匹配样式:

echothisisatextline|grep-e"is"-e"line"-oisline#也可以使用**-f**选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。catpatfileaaabbbechoaaabbbcccdddeee|grep-fpatfile-o

在grep搜索结果中包括或者排除指定文件:

#只在目录中所有的.php和.html文件中递归搜索字符"main()"grep"main()".-r--include*.{php,html}#在搜索结果中排除所有README文件grep"main()".-r--exclude"README"#在搜索结果中排除filelist文件列表里的文件grep"main()".-r--exclude-fromfilelist

使用0值字节后缀的grep与xargs:

#测试文件:echo"aaa">file1echo"bbb">file2echo"aaa">file3grep"aaa"file*-lZ|xargs-0rm#执行后会删除file1和file3,grep输出用-Z选项来指定以0值字节作为终结符文件名(\0),xargs-0读取输入并用0值字节终结符分隔文件名,然后删除匹配文件,-Z通常和-l结合使用。

grep静默输出:

grep-q"test"filename#不会输出任何信息,如果命令运行成功返回0,失败则返回非0值。一般用于条件测试。

打印出匹配文本之前或者之后的行:

#显示匹配某个结果之后的3行,使用-A选项:seq10|grep"5"-A35678#显示匹配某个结果之前的3行,使用-B选项:seq10|grep"5"-B32345#显示匹配某个结果的前三行和后三行,使用-C选项:seq10|grep"5"-C32345678#如果匹配结果有多个,会用“--”作为各匹配结果之间的分隔符:echo-e"a\nb\nc\na\nb\nc"|grepa-A1ab--ab
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:Linux grep命令怎么使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Linux ftpshut命令有什么作用下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18