Sed - apaga a linha com vários caracteres especiais usando uma variável

2

Estou com o seguinte arquivo:

  • test.txt

que contém:

3;/var/tmp/test.mp4
3;/var/tmp/test2.mp4
1;/var/tmp/test3.mp4

Eu preciso remover, por exemplo, " 3; /var/tmp/test2.mp4 " usando uma variável.

string="3;/var/tmp/test2.mp4"
sed -i '#$string#d' test.txt

Não apresenta erros, mas não consigo excluir a linha ... Qualquer ajuda seria apreciada.

Obrigado!

    
por Paul K 09.11.2017 / 00:47

1 resposta

3

Você tem que escapar do primeiro delimitador se diferente de / no endereço.

Além disso, se você usar variáveis, você terá que expô-las ao shell (com aspas duplas para evitar problemas com espaços em branco).

sed -i "\#$string#d" test.txt

ou

sed -i '\#'"$string"'#d' test.txt
    
por 09.11.2017 / 03:02

Tags