2

私はいくつかのxmlファイルを混同しましたが、今では次のようなものがあります

<Schema>
stuff
</Schema><Schema>
stuff
</Schema><Schema>
..

私はそれらをすべて分割する必要があるので、各ファイルにfrom から<Schema>toを含める必要があります</Schema>

4

1 に答える 1

4

を使用した一方向。レジスタを終了タグで分割し、前に文字がある場合はすべてを出力します。

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>
于 2013-07-12T10:02:51.730 に答える