Como inserir várias linhas com sed

6

Eu quero adicionar isso

#this 
##is my 
text

antes da linha

the specific line 

Eu tentei isso

sed -i '/the specific line/i \
#this 
##is my 
text
' text.txt

mas adiciona apenas em "texto".

Eu também tentei várias combinações com \ e " " , mas nada funcionou.

    
por Paul Bernhard Wagner 26.11.2015 / 08:33

2 respostas

2

Com novas linhas:

% sed -i '/the specific line/i #this\n##is my\ntext' foo

% cat foo
#this
##is my
text
the specific line
    
por A.B. 26.11.2015 / 09:14
5

Você está perdendo a barra invertida no final de algumas linhas (e você tem uma nova linha no final da última linha que deseja inserir):

sed -i '/the specific line/i \
#this\
##is my\
text' file
% cat file
foo
the specific line
bar

% sed -i '/the specific line/i \
#this\
##is my\
text' file

% cat file
foo
#this 
##is my 
text
the specific line
bar
    
por kos 26.11.2015 / 09:29

Tags