다음과 같이 루트 태그 없이 xml
호출된 파일이 있습니다 .test.xml
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
출력이 다음과 같도록 파일을 루트 태그로 래핑하려면 어떻게 해야 합니까?
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>
답변1
리디렉션을 통해 이 작업을 수행할 수 있습니다.
(echo "<root>"; cat test.xml; echo "</root>") > wrapped-test.xml
들여쓰기를 사용하면 다음과 같습니다.
(echo "<root>"; sed 's/^/ /' test.xml; echo "</root>") > wrapped-test.xml
답변2
첫 번째 줄 앞에 ( ) 여는 태그를 삽입 i\
하고 마지막 줄( ) 뒤에 $
( ) a\
닫는 태그를 추가합니다(공백 서식은 신경쓰지 않습니다).
편집하다GNU
: 어떤 버전이 필요한지 언급하는 것을 잊었습니다 .sed
콘텐츠 script.sed
:
1 i\
<root>
$ a\
</root>
다음과 같이 실행하세요:
sed -f script.sed infile
다음 출력으로:
<root>
<cat></cat>
<name></name>
<id></id>
<cat></cat>
<name></name>
<id></id>
</root>