変数がに設定されています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]}
使用するモードは、一致をどれだけ慎重に実行するかによって異なります。