grep命令提取一个单词

时间:2013-07-10 07:26:57

标签: linux grep

这是我的档案。

    this is temp1
    this is temp2
    this is temp3

如何使用grep命令在查找模式'temp'时,结果应该只显示为'temp1,temp2,temp3',而不是整个句子。

由于

3 个答案:

答案 0 :(得分:7)

你可以使用-o选项

$ grep -o "temp[0-9]"

答案 1 :(得分:1)

您可能希望将grepsed结合使用。 sed使用perl风格的正则表达式,为你提供更多的模式匹配能力(在我看来)。这将得到你所需要的:

grep temp yourFileName | sed -e "s/.*(temp[0-9]*).*/\1/"

但是如果你想要的不只是temp [number],你可以匹配“temp”然后继续匹配,直到你遇到一个空格。这样就可以了:

grep temp yourFileName | sed -e "s/.*(temp[^ ]*).*/\1/"

如果在命令行中,您可能还需要转义括号:

grep temp yourFileName | sed -e "s/.*\(temp[^ ]*\).*/\1/"

答案 2 :(得分:1)

您可以将多行换行,然后将其输入grep中,例如

grep myword | tr ' ' '\n' | grep myword