Como substituir strings de variáveis por caracteres especiais em sed

0

Eu comecei a usar sed para substituir texto em arquivos, para facilitar a alteração em massa do conteúdo dos arquivos, e eu tenho cada valor que precisa ser definido como uma variável com BASH e a substituição como uma função que chama todos as variáveis para substituir o texto existente. Exemplo ~

sed -i -e "s/$answer/$FORME $answer/g" ~$answer.txt

$ answer é a variável input com o comando no terminal. $ FORME é uma variável que é definida dependendo da entrada de $ answer, no entanto $ FORME contém "/" e eu tenho navegado online e não consigo encontrar uma maneira de substituir usando variáveis que contenham caracteres especiais. Quando eu tento usar o comando no $ answer que cria $ FORME com um caractere especial, exibe este erro:

sed: -e expression #1, char 15: unknown option to 's'

Suponho que isso signifique que o caractere especial em $ FORME está registrado como parte do comando real, não como uma string a ser substituída. Por favor ajude!

Obrigado antecipadamente!

    
por Brandon K 07.01.2017 / 20:13

1 resposta

4

Você pode usar qualquer caractere como um delimitador de comando s , por exemplo,

sed -i -e "s|$answer|$FORME $answer|g" ~$answer.txt
    
por 07.01.2017 / 20:17

Tags