Unix

如何從 Unix 中的字元串中刪除某些字元?

  • September 14, 2018

我有兩個這樣的字元串

a=[2018:09:11-18:37:06:376476]

b=[2018:09:11-18:37:06:376446]

我想要兩個字元串

a= 20180911183706376476

b= 20180911183706376446

任何人都可以幫助我嗎?

如果你的 shell 支持變數中的“//”替換,你可以使用

a=${a//[]:[-]/}

(請注意,“-”應該是最後一個,“]”應該是[...]范圍表達式中的第一個。

如果沒有,你可以使用這樣的東西:

set_trim(){ local IFS=[:-]; v=$1; set -- $2; IFS=; eval "$v=$*"; }
set_trim a "$a"
set_trim b "$b"

或者,使用sed(效率較低,因為它必須啟動外部程序):

a=`echo $a | sed 's/[]:[-]//g'`

引用自:https://serverfault.com/questions/930864