私はいくつかのxmlファイルを混同しましたが、今では次のようなものがあります
<Schema>
stuff
</Schema><Schema>
stuff
</Schema><Schema>
..
私はそれらをすべて分割する必要があるので、各ファイルにfrom から<Schema>
toを含める必要があります</Schema>
awkを使用した一方向。レジスタを終了タグで分割し、前に文字がある場合はすべてを出力します。
awk -c '
BEGIN { RS = "</Schema>" }
$0 ~ /[^[:blank:]\n]/ {
printf "%s\n", $0 RS >> FILENAME "_" ++i ".xml"
}
' infile
内容を仮定するinfile
と:
<Schema>
stuff
</Schema><Schema>
more stuff
</Schema><Schema>
and more stuff
</Schema>
次の結果が得られます。
==> infile_1.xml <==
<Schema>
stuff
</Schema>
==> infile_2.xml <==
<Schema>
more stuff
</Schema>
==> infile_3.xml <==
<Schema>
and more stuff
</Schema>