file1.xml
태그 이름이 있는 xml 파일을 업데이트하는 데 도움이 필요합니다 <abc> <\abc>
.
고정 길이 숫자가 있습니다 file2.txt
(한 줄에 숫자 1개).
1234
5678
1435
newfile.xml로 출력해야 합니다.
<abc>1234,5678,1435<\abc>
어떤 awk
옵션이 있나요 sed
?
감사해요
답변1
이 질문은 서로 다른 도구를 사용하여 두 부분으로 구성됩니다.
file2.txt
쉼표로 줄을 연결하세요paste -s -d',' file2.txt 1234,5678,1435
XML 파일에 값을 삽입합니다(빈 파일을 효과적으로 업데이트함). 이를 위해서는 비XML을 XML로 수정해야 합니다.
cat file1.xml <abc> </abc> xmlstarlet edit --update '//abc' --value 'test' file1.xml <?xml version="1.0"?> <abc>test</abc>
출력이 예상한 것과 같다고 확신하면 를 사용할 수
xmlstarlet
있습니다edit --inplace
.
이것들을 종합하면,
data=$(paste -s -d',' file2.txt)
xmlstarlet edit --inplace --update '//abc' --value "$data" file1.xml
cat file1.xml
<?xml version="1.0"?>
<abc>1234,5678,1435</abc>
답변2
perl -pne "s/\n/,/g" k.txt| sed -e "s/^/\<abc>/g" -e "s/,$//g" -e "s/$/\<\\\abc>/g"
산출
<abc>1234,5678,1435<\abc>