выделение текста в кавычках - PullRequest
0 голосов
/ 11 октября 2011

Как выбрать текст в двойных кавычках?

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

Я хочу вернуть только abc.txt Я не уверен, что это лучший инструмент для этой цели.

Ответы [ 4 ]

1 голос
/ 11 октября 2011

Чтобы найти весь текст в двойных кавычках, попробуйте это.

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

Одиночные кавычки предназначены для защиты шаблона от оболочки; фактический образец говорит, что соответствует двойной кавычке, сопровождаемой последовательностью символов, которые не являются двойной кавычкой, сопровождаемой другой двойной кавычкой. Параметр -o для grep говорит, что нужно печатать только совпадения (по умолчанию печатается вся строка, когда в шаблоне есть совпадение).

1 голос
/ 11 октября 2011
perl -nle'print $1 while /"([^"]*)"/g' list.txt

С GNU grep , если у вас есть одно вхождение в строке:

grep -Po '(?<=")[^"]*(?=")'  list.txt
0 голосов
/ 11 октября 2011
echo 'File "abc.txt" not found.' | awk '{print substr($2,2,length($2)-2)}'
0 голосов
/ 11 октября 2011
kent$  echo 'File "abc.txt" not found.'|sed -r 's/.*"([^"]*)".*/\1/g'
abc.txt
...