出力行から2番目の引用符付き文字列を抽出します。

出力行から2番目の引用符付き文字列を抽出します。

特別に抽出する必要がある3つの引用符を含む出力行があります。第二変数で参照されます。たとえば、コマンドを使用すると、cmd | grep tokens次のような出力が表示されます。

出力

"abcde", "12345", "zyxwv"

私はそこから出なければならない12345。私が得た最も近いのは、| cut '\"' -f2コマンドに追加することでしたが、「abcde」を返します。最初の見積もりの​​代わりに2番目の見積もりを受け取るにはどうすればよいですか?

答え1

コマンド技術を向上させますcut"各先行フィールドが評価されるように区切り記号を指定します"

例えば

最初の以前は、"次のものはありませんでした。

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f 1
[empty]

2"回目前abcde

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f2
abcde

3回目が"来る前に,

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f3
, 

したがって、予想される結果は4番目になります。

$ echo "\"abcde\", \"12345\", \"zyxwv\"" | cut -d \" -f4
12345

バックスラッシュを避けることがあなたを悩ませないことを願っています。

答え2

これがあなたが達成したいものですか?

variable=$(cmd | grep tokens | cut -d',' -f 2 | sed 's/ //')

答え3

私たちは単にawkを使って行うことができます

たとえば、

[User@test ~]$ echo "abcde", "12345", "zyxwv" awk -F"," '{Print $2}' 12345

出力がcmdから出る場合

変数= '<cmd> | awk -F"," '{print $2}'

関連情報