我正在使用以下内容提取 XML 标记之间的内容: -
perl -lne 'BEGIN{undef $/} while (/<tagname>(.*?)<\/tagname>/sg){print $1}' input.txt > output.txt
不幸的是我遇到了out of memory
问题,我知道我可以拆分文件并处理每个 concat 但我想知道是否还有另一种方法,是对上面的修改还是使用 awk 或 sed 之类的?
文件大小在input.txt
17GB 和 70GB 之间变化。
编辑:
输入文件可以是任何 XML 文件,需要注意的是它不包含换行符,例如:-
<body><a></a><b></b><c></c></body><foo></foo><bar><z></z></bar>