このxmlの例から取得しようとしています
<String Name="descResist">
<Description><![CDATA["resist_type_chimney"]]></Description>
<Flags>
<ParFlg_Child/>
</Flags>
<Value><![CDATA["90_min."]]></Value>
</String>
これ
descResist;resist_type_chimney
descResist;90_min.
したがって、基本的には CDATA コンテンツを抽出し、それを Name の値と連結する必要があります。
問題の 1 つは、常にタグに含まれているとは限らないことです ... 、、などのString
場合もあります ...Integer
Title
Boolean
私はこれを試しました
$ grep -o "Name=\".*\"\|<\!\[CDATA\[.*\]\]>" file.xml | sed 's/<\!\[CDATA\[\"\(.*
\)\"\]\]>/\1/'
それは私に与えます
Name="descResist"
resist_type_chimney
90_min.
次の行の前に名前文字列の値を付けるにはどうすればよいですか?
のように
Name="descResist"
resist_type_chimney
90_min.
Name="anotherName"
foo_bar
Name="anoooother"
Name="notempty"
bar_foo
少し複雑になります。
こんなXMLでもいいのでは?ネストされたものもあるはずな<tagType Name=...
ので、これは問題にならないと思います。
編集:私は cygwin に取り組んでおり、bash/sed/awk のシンプルなソリューションを探しています。