Shell
如何從字元串中刪除最後一個字元?
我有一個變數集
var='type_cardio_10-11-2017'
。我需要從變數中刪除最後 10 個字母,並將剩餘的值附加到var2
.我嘗試使用以下腳本,但它沒有按預期工作。
var=type_cardio_10-11-2017 var2=${var} | cut -f1 -d "_" echo ${var2}
我想要的輸出是type_cardio。
要從最後一個
_
in之後刪除所有內容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]}
您使用哪種模式取決於您要執行匹配的仔細程度。