如何选择双引号中的文字?
# cat list.txt
File "abc.txt" not found.
我想只返回abc.txt 我不确定哪个是最适合此目的的工具。
答案 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)}'