Como alterar um caracter especial no linux usando variável [closed]

1

Estou usando este comando sed em um determinado arquivo, mas não funciona.

por exemplo.

a="adsfkndsa%/{}==admfkdsa"  
b=sadkfjdsaklfj  

sed -i -e 's/$a/$b/g' /tmp/sample.txt

Por favor, sugira outra maneira.

    
por user191625 24.09.2016 / 08:27

1 resposta

4

Eu apenas tentei isso e funciona no meu sistema (Debian 8):

sed -i.bak "s|$a|$b|g" /tmp/sample.txt

Você precisa alterar o delimitador, pois a variável $a contém / .

Antes:

cat /tmp/sample.txt.bak 
foo
adsfkndsa%/{}==admfkdsa
bar

Depois:

cat /tmp/sample.txt
foo
sadkfjdsaklfj
bar

Editar, informações da versão do sed:

sed --version
sed (GNU sed) 4.2.2
    
por 24.09.2016 / 09:08

Tags