Grep Regex选择包含转义空格的最后一个单词

时间:2013-05-13 12:22:31

标签: regex grep

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

grep -o "[^ ]*$"

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

~some stuff~ path

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

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

你可以使用积极的外观:

((?<=\\) |[^ ])+$