Como posso adicionar uma linha incluindo aspas simples em um arquivo com sed [duplicate]

0

Eu quero acrescentar a seguinte linha a um arquivo de texto com sed:

gem 'forum2discourse'

Já experimentei sed -i '$a gem \'forum2discourse\'' Gemfile , mas isso me leva a um prompt > , por isso acho que devo estar escapando incorretamente dos caracteres '

    
por codecowboy 17.05.2015 / 11:19

3 respostas

4

sed -i '$a gem '"'"'forum2discourse'"'" Gemfile

Solução Alternativa

Se você quiser fazer do seu jeito, use o formato bash $'string' . Palavras do formulário $ 'string' são tratadas especialmente. A palavra se expande para string, com caracteres de escape com barra invertida substituídos conforme especificado pelo padrão ANSI C.

sed -i $'$a gem \'forum2discourse\'' Gemfile

Fonte: link

    
por 17.05.2015 / 11:27
1

Pelo menos com o GNU sed:

sed -i.bak '$a gem \x27forum2discourse\x27' file
    
por 17.05.2015 / 11:43
0
sed -i -e '$a gem '"'"'forum2discourse'"'" yourfile
    
por 17.05.2015 / 11:27