Bash

如何從字元串前面“刪除”/刪除字元?

  • July 7, 2020

我有一個我想操作的字元串。該字元串是H08W2345678我如何能夠操縱它,所以輸出只是W2345678

同樣,如果我想刪除最後 4 個字元H08W2345678以便我知道H08W234該怎麼做?

只需使用 bash (或ksh93該語法來自的地方 or zsh):

string="H08W2345678"

echo "${string:3}"
W2345678

echo "${string:0:-4}"
H08W234

有關字元串操作的更多資訊,請參閱 Wooledge wiki 。

$ echo "H08W2345678" | sed 's/^.\{3\}//'
W2345678

sed 's/^.\{3\}//'將找到前三個字元^.\{3\}並替換為空白。這裡^.將匹配字元串開頭的任何字元(^表示字元串的開頭),\{3\}並將匹配前一個模式精確 3 次。因此,^.\{3\}將匹配前三個字元。

$ echo "H08W2345678" | sed 's/.\{4\}$//'
H08W234

同樣,sed 's/.\{4\}$//'將最後四個字元替換為空白($表示字元串的結尾)。

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