Você perdeu a cotação na sua expressão sed
.
Tente:
$ varA="ASD# 1"
$ echo "$(sed 's/#/\#/g' <<< "${varA}")"
ASD\# 1
Na programação bash, dada uma variável, digamos varA
, que armazena uma string contendo o símbolo #
. Vamos supor que varA
contenha este valor: ASD# 1
, eu preciso acrescentar uma barra invertida \
na frente de #
, então a saída pode ter isso: ASD\# 1
. O seguinte código é sobre lá para alcançar meu objetivo, apenas que a substituição de seqüência de caracteres não parece funcionar e eu não sou capaz de atribuir a saída do comando sed em outra variável. Qualquer visão sobre isso?
varA="ASD# 1"
echo $(sed s/\#/\#/g <<< ${varA})
Há sobrecarga para usar sed
apenas para uma variável. Em bash
você pode usar ${varA/\#/\\#}
.
Tags sed shell-script quoting