6

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

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

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

您不能使用grep'word1|word2' /path/to/fileword 和 -c 之间的空格不同。

4

4 回答 4

9

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

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

此正则表达式读取“匹配‘单词’,后跟一个或多个空格,后跟‘-c’”。

于 2013-07-25T15:13:45.510 回答
3

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

于 2013-07-25T15:21:21.167 回答
1

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

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

或者

egrep "word +-c" abc.txt
于 2020-07-17T10:30:54.673 回答
0

grep 'word \+-c' abc.txt

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

这是一个参考:http ://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html

于 2013-07-25T15:13:10.413 回答