どのように最初の場所の引用文字列を抽出するには?

私はこれらの値を含むファイルを持っています: -




今私は最初の ""の内部で値を抽出したい。 結果は次のようになります:

india
austrelia
uae

私はシェルを使用しており、正規表現は "(。*?)"です。しかし、両方の値を選択します。私は最初のものだけを欲しい。 誰かが私にこのための正規表現を提案することができます。

0
たぶん、いくつかのことを明確にしなければならないかもしれません。どのコンテキストで正規表現を使用していますか? (それは本当にシェルか多分PHP上にあるのですか?)あなたは結果とどのようなOSを使っていますか?
追加された 著者 Simon,

2 答え

これを試して:

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

あなたのデータでテストする:

kent$  echo '

'|sed -r 's/^[^"]+"([^"]*)".*/\1/'
india
austrelia
uae
3
追加された
Mac OSXでは正規表現パターンを使用するオプションは -r の代わりに -E
追加された 著者 Simon,
もちろん@ケント:)
追加された 著者 Simon,
@サイモン良いコメント。私はMac OSの経験が0です。 gnu sedをインストールした場合、オプションは同じでなければいけませんか?
追加された 著者 Kent,
$ awk -F\" '{print $2}' file

Btw、おそらくシェルはXMLを解析するのに理想的なツールではありません。

1
追加された