Как извлечь строку с кавычками для первого места?

У меня есть файл, который содержит следующие значения:




Теперь я хочу извлечь значение из первого "". Таким образом, результат должен быть: -

india
austrelia
uae

Я использую оболочку, а мое регулярное выражение - «(. *?)». Но он выбирает оба значения. Я хочу только первый. Может ли кто-нибудь предложить мне правильное регулярное выражение для этого.

0
nl ja de
Может быть, нам нужно прояснить некоторые вещи: в каком контексте вы используете регулярное выражение? (действительно ли это на оболочке или, возможно, php?), что вы хотите сделать с результатом и какой ОС вы используете?
добавлено автор Simon, источник

2 ответы

попробуй это:

sed -r 's/^[^"]+"([^"]*)".*/\1/' file

проверьте свои данные:

kent$  echo '

'|sed -r 's/^[^"]+"([^"]*)".*/\1/'
india
austrelia
uae
3
добавлено
Обратите внимание, что в Mac OSX опция для использования шаблона regex - -E вместо -r
добавлено автор Simon, источник
Ну конечно @ Kent :)
добавлено автор Simon, источник
@Simon хороший комментарий. У меня есть 0 опыта Mac OS. но если вы установили gnu sed, параметры должны быть одинаковыми, не так ли?
добавлено автор Kent, источник
$ awk -F\" '{print $2}' file

Btw, возможно, оболочка не является идеальным инструментом для синтаксического анализа XML.

1
добавлено