文字列から最後の文字を削除する方法は?

文字列から最後の文字を削除する方法は?

変数がに設定されていますvar='type_cardio_10-11-2017'。変数から最後の10文字を削除し、残りの値をに追加する必要がありますvar2

次のスクリプトを試しましたが、期待どおりに動作しません。

var=type_cardio_10-11-2017
var2=${var} | cut -f1 -d "_"
echo ${var2}

私が望む出力はハート型

ベストアンサー1

最後のもの以降のすべてを削除し_var結果を次に割り当てるには、次のようにしますvar2

var2=${var%_*}

パラメータ拡張は、指定された変数値の末尾から${parameter%word}パターンを削除しますword(この場合)。_*

POSIX標準はこれを呼び出します。「最小サフィックスパターンの削除」パラメータ拡張。

最後のアンダースコアとその後の10文字を削除するには、次のようにします。

var2=${var%_??????????}

日付文字列に対応する文字(例の文字など)を削除するには、次のようにします。

var2=${var%_[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]}

使用するモードは、一致をどれだけ慎重に実行するかによって異なります。

おすすめ記事