Как удалить какой-нибудь символ из строки в 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'`