Как вставить несколько строк с sed

Я хочу добавить это

#this 
##is my 
text

перед линией

the specific line 

Я попробовал это

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

, но он добавляет только в ' text '.

Я также пробовал различные комбинации с \ и " ", но ничего не работало.

1
задан 26 November 2015 в 12:54

1 ответ

Вам не хватает конечной обратной косой черты в конце некоторых строк (и у вас есть новая строка перевода в конце последней строки, которую вы хотите вставить):

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
5
ответ дан 23 May 2018 в 15:28

Другие вопросы по тегам:

Похожие вопросы: