怎么在linux中使用grep命令?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
<强> linux grep命令强>
linux grep命令用于查找文件里符合条件的字符串;也可以用于查找内容包含指定的范本样式的文件。它能使用正则表达式搜索,用于在文件中搜索指定的字符串模式,列出含有匹配模式子符串的文件名,并输出含有该字符串的文本行。
grep的工作方式是这样的:它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引,用模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。
基本语法:
grep [选项],pattern [文件]
<强>[选项]的主要参数:强>
——或——文本:不要忽略二进制的数据。
-A<显示行数比;或——after-context=& lt;显示行数比;:除了显示符合范本样式的那一列之外,并显示该行之后的内容。
- b或字节偏移:在显示符合样式的那一行之前,标示出该行第一个字符的编号。
-B<显示行数比;或——before-context=& lt;显示行数比;:除了显示符合样式的那一行之外,并显示该行之前的内容。
- c或——数:计算符合样式的列数。
-C<显示行数比;或,上下文=& lt;显示行数祝辞或& lt;显示行数比;:除了显示符合样式的那一行之外,并显示该行之前后的内容。
- d & lt;动作的在或目录——=& lt;动作的在:当指定要查找的是目录而非文件时,必须使用这项参数,否则grep指令将回报信息并停止动作。
-e<范本样式比;或- regexp=& lt;范本样式比;:指定字符串做为查找文件内容的样式。
- e或——extended-regexp:将样式为延伸的普通表示法来使用。
-f<规则文件比;或——文件=& lt;规则文件比;:指定规则文件,其内容含有一个或多个规则样式,让grep查找符合规则条件的文件内容,格式为每行一个规则样式。
- f或——fixed-regexp:将样式视为固定字符串的列表。
- g或——basic-regexp:将样式视为普通的表示法来使用。
- h或——no-filename:在显示符合样式的那一行之前,不标示该行所属的文件名称。
- h或——with-filename:在显示符合样式的那一行之前,表示该行所属的文件名称。
我或——忽略大小写:忽略字符大小写的差别。
- l或——file-with-matches:列出文件内容符合指定的样式的文件名称。
- l或——files-without-match:列出文件内容不符合指定的样式的文件名称。
- n或——行编号:在显示符合样式的那一行之前,标示出该行的列数编号。
- o或——only-matching:只显示匹配模式部分。
q或——安静或沉默:不显示任何信息。
- r或——递归:此参数的效果和指定“- d recurse"参数相同。
s或——没有信息:不显示错误信息。
- v或——revert-match:显示不包含匹配文本的所有行。
- v或——版本:显示版本信息。
- w或——word-regexp:只显示全字符合的列。
- x——line-regexp:只显示全列符合的列。
- y:此参数的效果和指定“我;参数相同。
- ?:同时显示匹配行上下的吗?行,如:grep 2模式文件名同时显示匹配行的上下两行。
模式正则表达式主要参数:
\:忽略正则表达式中特殊字符的原含义。
^:匹配正则表达式的开始行。
美元:匹配正则表达式的结束行。
\ & lt;:从匹配正则表达式的行开始。
\祝辞:到匹配正则表达式的行结束。
[]:单个字符,如(一)即符合要求。
[-]:范围,如[A - Z],即A, B, C一直到Z都符合要求。
。:所有的单个字符。
*:有字符,长度可以为0。
代码示例:
示例1:在当前目录中,查找前缀有“测试”字样的文件中包含“测试”字符串的文件,并打印出该字符串的行,此时,可以使用如下命令:
grep test 测试*
输出:
testfile1:却;能够a Linux 测试文件!,#列出testfile1 文件中包含测试字符的行, testfile_2:却;能够is a  linux 测试文件!,#列出testfile_2 文件中包含测试字符的行, testfile_2: Linux test #列出testfile_2 文件中包含测试字符的行
示例2:反向查找,通过“-v"参数可以打印出不符合条件行的内容。查找文件名中包含测试的文件中不包含测试的行