Grep未知数量的空间(linux)

时间:2013-07-25 15:11:18

标签: regex grep

假设您有一个名为abc.txt的文件 - 该文件包含2行(或更多行):

word  -c           (09:35:20)
word     -c        (09:38:49)

如果运行命令$ grep "word -c" abc.txt,则只获得第1行,因为1和-c之间的空格数与第2行不匹配。有没有办法解决这个问题?

您不能使用grep'word1|word2' /path/to/file作为单词和-c之间的空格。

4 个答案:

答案 0 :(得分:6)

使用+正则表达式字符,该字符至少与前面一个字符匹配:

grep -E "word +-c" abc.txt

这个正则表达式是“匹配'单词',后跟一个或多个空格,后跟'-c'。”

答案 1 :(得分:2)

grep'word * -c'abc.txt将起作用。我无法使用grep'word + -c'abc.txt来工作。

答案 2 :(得分:1)

您可以将egrep与正则表达式一起使用

egrep "word\s+-c" abc.txt

egrep "word +-c" abc.txt

答案 3 :(得分:0)

grep 'word \+-c' abc.txt

使用单引号而不是双引号。 “+”表示“前面一个或多个表达式,因此会找到任意数量的空格(零除外)。

以下是参考资料:http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html