실제로 .라는 파일이 있습니다 test1.txt
.
해당 파일에는 다음과 같은 다섯 줄이 있습니다.
'test message1'
'test message2'
'test message3'
'test message4'
'test message5'
이제 이 줄 다음에 파일 'testing testing'
에 새 줄을 추가하고 싶습니다 . 어떻게 하나요?test1.txt
'test message1'
답변1
이것은a
이 명령은 다음을 수행합니다.
sed -e "/test message1/a\\
'testing testing'" < data
이 명령은 다음을 수행합니다.
현재 주기가 끝날 때나 다음 입력 줄을 읽을 때 출력을 위해 이 명령 뒤에 오는 텍스트 줄(출력에서 제거되는 \로 끝나는 마지막 줄 제외)을 대기열에 넣습니다.
따라서 이 경우 pend 와 행을 일치시키면 /test message1/
파일의 새 행이 되는 텍스트 인수 " "를 사용하여 명령을 실행합니다.a
'testing testing'
'test message1'
'testing testing'
'test message2'
'test message3'
'test message4'
'test message5'
최종이 아닌 각 줄을 백슬래시로 끝내면 여러 줄을 삽입할 수 있습니다. 위의 이중 백슬래시는 쉘이 이를 먹는 것을 방지하기 위한 것입니다. 독립 실행형 스크립트에서 사용하는 경우 sed
단일 백슬래시를 사용하십시오. GNU는 또한 sed
그 뒤에 한 줄의 텍스트를 허용 a
하지만 이는 이식 가능하지 않습니다.
답변2
그리고 sed
:
sed "s/'test message1'/'test message1'\n'testing testing'/g"
- "테스트 메시지 1"을 검색하세요.
- "테스트 메시지 1" [새 줄] "테스트 테스트"로 바꿉니다.
~에서이 답변, 다음을 사용할 수도 있습니다.
sed "/'test message1'/a 'testing testing'"
- "테스트 메시지 1"을 검색하세요.
- 게임 뒤에 "테스트 테스트"를 추가하세요.
답변3
POSIX적으로:
$ sed -e "/'test message1'/s//&\\
'testing testing'/" file
'test message1'
'testing testing'
'test message2'
'test message3'
'test message4'
'test message5'