引用符内に文字を使用しなかった Bash 文字列の一部

引用符内に文字を使用しなかった Bash 文字列の一部

だから私は次の文字列から取得したいと思います:

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"

""

おすすめ記事