sed: insere uma string contendo os delímetros de caminho

2

Eu quero inserir uma linha em um arquivo na linha 13 usando sed. Isso é o que eu tentei:

sed -i '13/home/me/dostuff.py &' /etc/rc.local

Eu recebo este erro:

sed: -e expression #1, char 3: unknown command : '/'

Como insiro texto contendo barras em uma determinada linha usando sed?

    
por Joel Harris 09.07.2016 / 03:28

1 resposta

3

Use

sed -i '13i\/home/me/dostuff.py &' /etc/rc.local

para i introduza-o (ou seja, coloque-o antes da linha 13); ou

sed -i '13a\/home/me/dostuff.py &' /etc/rc.local

para a ppend (isto é, coloque-o após a linha atual 13).

Observe que as barras não são especiais nos comandos i e a do sed - somente em correspondências de expressões regulares como /pattern/d ou s/pattern/replacement/ (embora, mesmo lá, elas possam ser substituídas por outros delimitadores, como \%pattern%d ou s#pattern#replacement# - pelo menos no GNU sed).

    
por steeldriver 09.07.2016 / 03:37