我有以下grep命令,它选择输出行的最后一个字。:
grep -o "[^ ]*$"
我使用它来选择程序输出的文件名路径作为该行的最后一个单词,如下所示:
~some stuff~ path
我的问题是,如果路径已转义空格“Some\ Word
”,那么正则表达式显然只会选择“Word”。有没有办法让它选择空格,但没有转义空格?
答案 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)
你可以使用积极的外观:
((?<=\\) |[^ ])+$