次のように予想される文字列があります。
final old-version=1.2.3-old new-version=1.2.4
old-version
文字列からバージョン番号を抽出し、2つの変数を作成しようとしていますnew-version
。
old-version=1.2.3-old
new-version=1.2.4
これが私が思いついたものです:
x='final old-version=1.2.3-old new-version=1.2.4'
echo $x | awk '{print $2}' | cut -d'=' -f2
これを使って私は価値を得ましたold-version
。ただし、何らかの理由で次の文字列が表示された場合、このアプローチは非常に迅速に中断されます。final new-version=1.2.4 old-version=1.2.3-old
部分文字列とその値を抽出するより良い、よりきれいで、より安定した方法がありますか?
ベストアンサー1
bashシェルとPEパラメータを使用した拡張と読み取り
x='final old-version=1.2.3-old new-version=1.2.4'
read -r _ old new <<< "$x"; printf '%s\n' "${old#*=}" "${new#*=}"
または-a
読み取りオプションのある配列を使用してください。
x='final old-version=1.2.3-old new-version=1.2.4'
read -ra var <<< "$x"; printf '%s\n' "${var[1]#*=}" "${var[2]#*=}"