Grep命令使用实例

查找字符串

在文件中查找字符串:data one

1 grep 'data one' debug.txt

查找多个字符串

您也可以使用grep查找多个单词或字符串。您可以使用-e开关指定多个模式。让我们尝试在文本文档中搜索两个不同的字符串:

1 grep -e 'data one' -e 'two' debug.txt

显示之前和之后的行

如果需要更多grep输出上下文,可以使用-c开关在指定的搜索字符串前后显示一行:

1 $ grep -c 1 string filename

对结果进行排序

将grep的输出传递给sort命令,以按某种顺序对结果进行排序。默认为字母顺序。

1 $ grep string filename | sort

带行号的Grep

要显示搜索字符串所在的行数,请使用-n开关。

1 $ grep -n string filename

Grep和替换

传递给sed的grep命令可用于替换文件中字符串的所有实例。此命令将在相对于当前工作目录的所有文件中将“ string1”替换为“ string2”:

$ grep -rl 'string1' ./ | xargs sed -i 's/string1/string2/g'

使用正则表达式

通过使用正则表达式进一步扩展了Grep的功能,从而使您的搜索更加灵活。存在几种,在下面的示例中,我们将介绍一些最普通的:

[]括号用于匹配一组字符中的任何一个。

# 方法一:[]括号用于匹配一组字符中的任何一个。
grep "Class [123]" Students.txt
 
# 方法二:带连字符的[-]括号可用于指定数字或字母字符范围。
grep "Class [1-3]" Students.txt
 
输入的结果:
此命令将返回任何显示“ Class 1”,“ Class2”或“ Class 3”的任何行。

#^脱字符号用于搜索只出现在行的开头的模式。
grep“ ^ Class” Students.txt

#带方括号的脱字符号用于从搜索模式中排除字符。
grep "Class [^1-2]" Students.txt

 Grep在多个相似的文件中过滤信息

比如:需要在某个路径下的多个文件内过滤一些关键信息

grep "max kafka" incident*log

 

 

posted @ 2022-04-06 20:22  术科术  阅读(237)  评论(0编辑  收藏  举报