Shell

如何從字元串中刪除最後一個字元?

  • November 16, 2019

我有一個變數集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]}

您使用哪種模式取決於您要執行匹配的仔細程度。

引用自:https://unix.stackexchange.com/questions/399392