Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有以下 grep 命令,它选择输出行的最后一个单词。:
grep -o "[^ ]*$"
我正在使用它来选择程序输出的文件名的路径作为该行的最后一个单词,如下所示:
~some stuff~ path
我的问题是,如果路径已经转义了空格“ Some\ Word”,那么正则表达式显然只会选择“Word”。有没有办法让它选择空格,而不是转义空格?
Some\ Word
这对你有用:
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
您可以使用积极的向后看:
((?<=\\) |[^ ])+$