1. ホーム
  2. shell

[解決済み] コマンド出力から2列目を取得する方法は?

2022-03-12 12:48:25

質問

私のコマンドの出力は次のようなものです。

1540 "A B"
   6 "C"
 119 "D"

最初の列は常に数字で、その後にスペース、そして二重引用符で囲まれた文字列が続きます。

私の目的は、2列目だけを取得することです。

"A B"
"C"
"D"

を使うつもりでした。 <some_command> | awk '{print $2}' を使えば、これを実現することができます。しかし、問題は、2番目の列のいくつかの値がスペースを含んでいることです。 awk を使用してフィールドを区切ります。そのため、出力がぐちゃぐちゃになっています。

"A
"C"
"D"

2列目の値(ペアクォート付き)をきれいに取得するにはどうすればよいですか?

どのように解決するのですか?

または、sed & regexを使用します。

<some_command> | sed 's/^.* \(".*"$\)/\1/'