以下を使用して、XML タグ間のコンテンツを抽出しています。
perl -lne 'BEGIN{undef $/} while (/<tagname>(.*?)<\/tagname>/sg){print $1}' input.txt > output.txt
残念ながらout of memory
問題が発生しています。ファイルを分割してそれぞれを処理してから連結できることはわかっていますが、上記を変更するか、awk や sed などを使用するか、別の方法があるかどうか疑問に思いました。
input.txt
ファイルサイズは 17GB から 70GB の間で異なります。
編集:
入力ファイルは任意の XML ファイルにすることができます。注意すべき点は、改行が含まれていないことです。例: -
<body><a></a><b></b><c></c></body><foo></foo><bar><z></z></bar>