変数値から部分文字列を抽出する

変数値から部分文字列を抽出する

私のシェルスクリプトから呼び出される変数にフォームが格納されているsegment_78787文字列があります。$ID2番目の部分 "78787"を取得して別の変数に割り当てる必要があります。

私は次のように試しました

batchname=`ID|cut -d_ -f1`

それは私に何の結果も与えません。

ベストアンサー1

シェルがそれをサポートしている場合(すべてのPOSIX様シェルがサポートしている場合)、拡張機能を使用できます。

batchname=${ID##*_}

でも

batchname=${ID#*_}

最初の形式は最も右側の下線(最も右側の下線を含む)より前のすべての文字を削除し、2番目の形式は最も左側の下線(最も左側の下線を含む)より前のすべての文字を削除します。特定の例では、2つの形式は同じです。

おすすめ記事