选择引号中的文字

时间:2011-10-11 10:06:15

标签: sed awk grep

如何选择双引号中的文字?

# cat list.txt
File "abc.txt" not found.

我想只返回abc.txt 我不确定哪个是最适合此目的的工具。

4 个答案:

答案 0 :(得分:1)

要查找双引号内的所有文字,请尝试此操作。

grep -o '"[^"]*"' list.txt

单引号是为了防止来自shell的模式;实际模式表示匹配双引号,后跟一系列不是双引号的字符,后跟另一个双引号。 -o的{​​{1}}选项表示只打印匹配项(默认设置是在模式匹配时打印整行)。

答案 1 :(得分:1)

perl -nle'print $1 while /"([^"]*)"/g' list.txt

如果每行有一次出现,请使用 GNU grep

grep -Po '(?<=")[^"]*(?=")'  list.txt

答案 2 :(得分:0)

kent$  echo 'File "abc.txt" not found.'|sed -r 's/.*"([^"]*)".*/\1/g'
abc.txt

答案 3 :(得分:0)

echo 'File "abc.txt" not found.' | awk '{print substr($2,2,length($2)-2)}'