假设您有一个名为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 "word -c" abc.txt
grep'word1|word2' /path/to/file
qrjkbowd1#
使用+正则表达式字符,该字符将至少匹配前面的一个字符:
+
grep -E "word +-c" abc.txt
此正则表达式的内容为“匹配'word',后跟一个或多个空格,再后跟'-c'”。
z31licg02#
grep 'word *-c' abc.txt可以工作。我无法使grep 'word +-c' abc.txt工作。
mwecs4sa3#
可以将egrep与regex一起使用
egrep "word\s+-c" abc.txt
或
egrep "word +-c" abc.txt
fkvaft9z4#
第一个月使用单引号,而不是双引号。“+”表示“一个或多个前面的表达式,因此可以找到任意数量的空格(零除外)。”这里有一个参考:http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html
2jcobegt5#
cat /etc/ssh/sshd_config | egrep -v "^[[:space:]]?+#" | grep -v "^$"
这将删除以#开头的所有行或#之前的所有空格
#
5条答案
按热度按时间qrjkbowd1#
使用
+
正则表达式字符,该字符将至少匹配前面的一个字符:此正则表达式的内容为“匹配'word',后跟一个或多个空格,再后跟'-c'”。
z31licg02#
grep 'word *-c' abc.txt可以工作。我无法使grep 'word +-c' abc.txt工作。
mwecs4sa3#
可以将egrep与regex一起使用
或
fkvaft9z4#
第一个月
使用单引号,而不是双引号。“+”表示“一个或多个前面的表达式,因此可以找到任意数量的空格(零除外)。”
这里有一个参考:http://www.gnu.org/software/findutils/manual/html_node/find_html/grep-regular-expression-syntax.html
2jcobegt5#
这将删除以
#
开头的所有行或#
之前的所有空格