Как удалить символ из строки в Unix?

Как удалить символ из строки в Unix?

У меня есть две такие струны.
a=[2018:09:11-18:37:06:376476]
b=[2018:09:11-18:37:06:376446]
Я хочу две такие струны.
a= 20180911183706376476
b= 20180911183706376446

Кто-нибудь может мне помочь?

решение1

Если ваша оболочка поддерживает подстановки "//" в переменных, вы можете использовать

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'`

Связанный контент