파일 1의 내용:
1111
2222
3333
4444
파일 2의 내용:
[webservers]
[databases]
file2의 내용을 다음과 같이 만들고 싶습니다. 모든 행을 추가한 후 새 행을 삽입합니다.
[webservers]
1111
2222
3333
4444
[databases]
답변1
패턴 뒤에 파일을 추가하려면 r
ead 명령을 사용 하고 개행을 삽입하려면 대체 명령을 사용하십시오.sed
s
sed -e '/\[webservers]/r file1' -e 's/\[databases]/\
&/' file2
위에 표시된 대로 개행 문자를 대체 패턴에 포함하려면 백슬래시를 사용하여 이스케이프해야 합니다( &
전체 일치 항목을 나타내므로 일치 항목은 개행 문자 앞에 자체적으로 대체됩니다).
[
특별한 의미를 억제하려면 이스케이프가 필요합니다 .
답변2
확장된 정규식 모드를 갖춘 GNU sed.
추가할 파일에 후행 개행 문자를 추가하기 위해 여기에서 Sed 명령 "a"를 사용할 수도 있습니다.
sed -E \
-e '/\[webservers]/r file1' \
-e '/\[databases\]/r file3' \
-e '/\[webservers]|\[databases]/a\
' \
file2 >hosts