假设您有一个名为 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/file
word 和 -c 之间的空格不同。
使用+
正则表达式字符,它将匹配至少一个前面的字符:
grep -E "word +-c" abc.txt
此正则表达式读取“匹配‘单词’,后跟一个或多个空格,后跟‘-c’”。
grep 'word *-c' abc.txt 将起作用。我无法让 grep 'word +-c' abc.txt 工作。
您可以将 egrep 与正则表达式一起使用
egrep "word\s+-c" abc.txt
或者
egrep "word +-c" abc.txt
grep 'word \+-c' abc.txt
使用单引号,而不是双引号。“+”表示“一个或多个前面的表达式,因此可以找到任意数量的空格(零除外)。