【发布时间】:2014-11-17 15:01:53
【问题描述】:
我有一个包含以下内容的文本文件(例如):
In first line the "One", second"Two " & " Three " and also"Four ".
In second line also nested "foo "bar" baz""zoo" patterns.
我尝试将所有字符串都放在一对引号之间,最后我得到了这个命令:
grep -Po '"\K[^"]+"' file
这个命令给我的如下:
One"
Two "
Three "
Four "
foo "
baz"
zoo"
而 我想要的 来自上述结果,因为我想要的输出将是:
One
Two
Three
Four
foo
baz
zoo
请有人帮我从上面的grep 输出中删除最后一个"。我不想从输出中删除空格。我没有任何扩展到多行的单词。例如:
... "foo "bar" ba
z""zoo" ...
拜托,请不要建议我可以使用多个命令,我知道我可以。我问你我是否可以单独使用 grep 及其选项来做到这一点?
【问题讨论】:
-
但是正则表达式匹配是贪婪的,所以只搜索 [^"]+ 没有尾随 " 应该就足够了,不是吗?
标签: grep text-processing