だから私は次の文字列から取得したいと思います:
q='"Something, variable", another part, third one'
「何か、可変的なもの」部分です。
私は得ることができますか?
'"Something'
使用${q%%,*}
。
しかし、bashに引用符内のカンマ(または他の文字)を無視させるにはどうすればよいですか?
ベストアンサー1
echo "${q%"${q#*\"*\"}"}"
"Something, variable"
...次を使用して、リテラル解釈"
で見つかった2番目の二重引用符の結果を削除し、これらの2つの引用符にのみ適用されます。$q
(読む - 内部引用符)$q
の末尾から削除するパターン文字列です。$q
拡張に2つの二重引用符がない場合はnullを返します。
また、これらのうち最初をリードするキャラクターがある場合$q
にも保存されます。
だから...
q='x""'
echo "${q%"${q#*\"*\"}"}"
x""
次のように処理できます。
[ -z "${q##\"*}" ] || q=\"${q#*\"}
echo "$q"
""