
Na programação bash, dada uma variável, digamos varA
, que armazena uma string contendo #
um símbolo. Vamos supor que varA
contenha este valor: ASD# 1
, preciso acrescentar uma barra invertida \
na frente de #
, para que a saída possa ter isto: ASD\# 1
. O código a seguir serve para atingir meu objetivo, só que a substituição da string parece não funcionar e não consigo atribuir a saída do comando sed para outra variável. Alguma visão disso?
varA="ASD# 1"
echo $(sed s/\#/\\#/g <<< ${varA})
Responder1
Você está faltando uma citação na sua sed
expressão.
Tentar:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\\#/g' <<< "${varA}")"
ASD\# 1
Responder2
Há sobrecarga para usar sed
apenas para uma variável. Em bash
você pode usar ${varA/\#/\\\#}
.