使用awk匹配以/root/开头并在字符“之前结束的路径;

使用awk匹配以/root/开头并在字符“之前结束的路径;,awk,Awk,我有一个命令,它生成一个随机输出,其中有一条路径 我需要用awk提取这个路径。 路径总是以相同的模式开始(假设它总是以/root开始),但其余的可以更改 例如: error reason 05/30/2017 12:18:37 [74575:45687]: "/root/this/is/my/path/" random text random text random text random text random text random text 要提取/root/this/is/m

我有一个命令,它生成一个随机输出,其中有一条路径 我需要用awk提取这个路径。 路径总是以相同的模式开始(假设它总是以/root开始),但其余的可以更改

例如:

error reason  05/30/2017 12:18:37 [74575:45687]: "/root/this/is/my/path/" random text random text random text random text random text random    text 
要提取/root/this/is/my/path/:我尝试使用grep+awk,方法如下:

command.sh | grep error  |awk '/root/{mypath=$6}'. 
但后来我发现我的路径并不总是在同一个地方。还有,我不想提取双引号

i need to have /root/this/is/my/path/ not "/root/this/is/my/path/"

任何人都可以帮忙吗?

这也可以:

command.sh | awk '/^error/{ for ( i = 1; i <= NF; i++) if ( $i ~ /^"/){ gsub(/"/, "", $i); print $i} }' -
awk解决方案:

command.sh | awk '/^error/{ match($0,/\/root[^"]+/); print substr($0,RSTART,RLENGTH) }'
输出:

/root/this/is/my/path/

您可以采用一种简单的方法:

command.sh | awk -F\" '/^error/{ print $2}'
输出:

/root/this/is/my/path/

请尝试
grep-oP'\d{5}:\d{5}]:“\K[^”]+'
谢谢你们的不同答案,我喜欢第三个答案,因为它非常简单。前两个看起来很有趣,但现在对我来说很复杂。我无论如何都会研究它们,试着理解它们的作用。谢谢。请检查并接受我的回答。:)
/root/this/is/my/path/