1

我有以下 grep 命令,它选择输出行的最后一个单词。:

grep -o "[^ ]*$"

我正在使用它来选择程序输出的文件名的路径作为该行的最后一个单词,如下所示:

~some stuff~ path

我的问题是,如果路径已经转义了空格“ Some\ Word”,那么正则表达式显然只会选择“Word”。有没有办法让它选择空格,而不是转义空格?

4

2 回答 2

2

这对你有用:

grep -Eo '([^ ]|\\ )*$'

例如:

kent$  cat file
foo some\ word1
foo this word2
foo the\ whole\ word

kent$  grep -Eo '([^ ]|\\ )*$' file                                                                                                                                         
some\ word1
word2
the\ whole\ word
于 2013-05-13T12:29:03.903 回答
0

您可以使用积极的向后看:

((?<=\\) |[^ ])+$
于 2013-05-13T12:33:57.007 回答