쉘 변수를 사용하여 새 xml 태그를 검색하고 추가하고 싶습니다.쉘 스크립트에서 sed를 사용하여 새 xml 태그 추가
아래의 명령을 사용하면 KVM_IF_LIST_FILE
은 인스턴스의 모든 인터페이스 이름을 저장합니다 (예 : eno1 eno2 eno3 eno4
의 경우 포함).
virsh domiflist $kvm_name|awk {'print $3'}|awk 'NR>2' >> $KVM_IF_LIST_FILE
지금 나는 위의 패턴을 발견하면, <source dev='eno0/1/2/3' mode='bridge'/>
를 검색 할 필요가 옆에있는 위의 패턴에 새로운 XML 노드 (<target dev=\'$kvm_name$cnt\'/>
)를 추가해야합니다. 이 경우에는 작동하지 않는 쉘 스크립트를 작성했습니다.
cnt=0
for i in `cat $KVM_IF_LIST_FILE`
do
echo "Updating macvtap device names for $i"
sed -i.bak "/source dev='\'/a <target dev=\'$kvm_name$cnt\'/>" $XML_FILE
cnt=`expr $cnt + 1`
done
위의 스크립트를 수정하여 위의 검색 및 바꾸기를 수행하는 방법을 알려주십시오.
XML 인식 도구를 사용하여 XML 문서를 수정하십시오. – choroba
여기서 [sed] xml을 검색하면 1400+ 답을 찾을 수 있습니다. 그들 중 누구 한테 루크 봤니? 행운을 빕니다. – shellter
사실 비 XML 인식 도구를 사용하면 XML 인식 도구로이 작업을 수행하는 것이 쉽지만 * 코드가 손상된 문서를 생성하는 경우가있을 수 있습니다. –