sed로 여러 줄을 삽입하는 방법


10

이것을 추가하고 싶습니다

#this 
##is my 
text

줄 앞에

the specific line 

나는 이것을 시도했다

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

그러나 '텍스트'만 추가합니다.

또한 다양한 조합을 시도 \하고 " "있지만, 아무 일 없습니다.

답변:


4

줄 바꿈으로 :

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

% cat foo
#this
##is my
text
the specific line

9

일부 줄 끝에서 후행 백 슬래시가 누락되었습니다 (삽입하려는 마지막 줄 끝에 줄 바꿈이 있습니다).

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

1

대체 문자열에 줄 바꿈과 공백이 있으면 다른 것을 사용할 수 있습니다. 우리는 ls -l일부 템플릿 파일의 중간에 출력을 삽입하려고 시도 할 것 입니다.

awk 'NR==FNR {a[NR]=$0;next}
    /Insert index here/ {for (i=1; i <= length(a); i++) { print a[i] }}
    {print}'
    <(ls -l) text.txt

줄 다음에 무언가를 삽입하려면 명령을 이동 {print}하거나 다음으로 전환하십시오.

sed '/Insert command output after this line/r'<(ls -l) text.txt

sed를 사용하여 줄 앞에 삽입 할 수도 있습니다.

sed 's/Insert command output after this line/ls -l; echo "&"/e' text.txt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.