如何从grep输出中删除最后一个字符?

如何从grep输出中删除最后一个字符?,grep,text-processing,Grep,Text Processing,我有一个文本文件,其中包含以下内容(例如): 我尝试在一对引号之间包含所有字符串,最后我使用以下命令结束: grep -Po '"\K[^"]+"' file 这个命令给了我如下信息: One" Two " Three " Four " foo " baz" zoo" 而我想要的来自上面的结果是我想要的输出: One Two Three Four foo baz zoo 请有人帮我从上面的grep输出中删除最后一个“。我不想从输出中删除空格。我没有任何扩展到多行

我有一个文本文件,其中包含以下内容(例如):

我尝试在一对引号之间包含所有字符串,最后我使用以下命令结束:

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
解决它,这里有一个
awk

awk -F\" '{for (i=2;i<=NF;i+=2) {gsub(/ /,"");print $i}}' file
One
Two
Three
Four
foo
baz
zoo

awk-F\“{for(i=2;i如果你不能用
grep

awk -F\" '{for (i=2;i<=NF;i+=2) {gsub(/ /,"");print $i}}' file
One
Two
Three
Four
foo
baz
zoo

awk-F\“{for(i=2;i如果你不能用
grep

awk -F\" '{for (i=2;i<=NF;i+=2) {gsub(/ /,"");print $i}}' file
One
Two
Three
Four
foo
baz
zoo

awk-F\“{for(i=2;i如果你不能用
grep

awk -F\" '{for (i=2;i<=NF;i+=2) {gsub(/ /,"");print $i}}' file
One
Two
Three
Four
foo
baz
zoo

awk-F\“{for(i=2;i这可以通过下面的grep一行程序实现

$ grep -oP '"\K[^"]+(?="(?:[^"]*"[^"]*")*[^"]*$)' file
One
Two 
 Three 
Four    
foo 
 baz
zoo
另一个通过PCRE动词的黑客行为


这可以通过下面的grep-one-liner实现

$ grep -oP '"\K[^"]+(?="(?:[^"]*"[^"]*")*[^"]*$)' file
One
Two 
 Three 
Four    
foo 
 baz
zoo
另一个通过PCRE动词的黑客行为


这可以通过下面的grep-one-liner实现

$ grep -oP '"\K[^"]+(?="(?:[^"]*"[^"]*")*[^"]*$)' file
One
Two 
 Three 
Four    
foo 
 baz
zoo
另一个通过PCRE动词的黑客行为


这可以通过下面的grep-one-liner实现

$ grep -oP '"\K[^"]+(?="(?:[^"]*"[^"]*")*[^"]*$)' file
One
Two 
 Three 
Four    
foo 
 baz
zoo
另一个通过PCRE动词的黑客行为


@KasiyA不是所有的问题都可以用
grep
轻松解决。你没有
awk
?@KasiyA不是所有的问题都可以用
grep
轻松解决。你没有
awk
?@KasiyA不是所有的问题都可以用
grep
轻松解决。你没有
awk
?@KasiyA不是所有的问题都可以用
grep
轻松解决。你没有吗have
awk
?但是正则表达式匹配是贪婪的,所以只搜索[^”]+而不带尾随“应该足够了吧?但是正则表达式匹配是贪婪的,所以只搜索[^”]+而不带尾随“应该足够了吧?但是正则表达式匹配是贪婪的,所以只搜索[^”]+没有尾随“应该足够了,不是吗?但是正则表达式匹配是贪婪的,所以只搜索[^”]+而没有尾随“应该足够了,不是吗?