【发布时间】:2014-03-06 06:20:03
【问题描述】:
如何告诉 perl regexp 重复遍历整行?
我的文件(测试)内容是这样的,所有数据都在一行中。实际文件要大得多,但所有数据都在一行中。
{"abc":"283420","def":"283420"},{"abc":"483420","def":"253420"},{"abc":"283120","def":"284420"}
我想用 perl 打印这个:
283420,283420
483420,253420
283120,284420
我当前的代码:
perl -nle 'print "$1,$2" while( /.*abc\":\"(\d*)\".*def\":\"(\d+)/g)' test
只打印最后一个匹配项
283120,284420
【问题讨论】:
-
REGEX 不是正确的工具,请改用 JSON 解析器
-
尝试使用
test的不同名称。test可能是系统内置的,它可能会产生不需要的行为(即使它当前不在您的场景中)。最好安全一点。 -
sputnick,我的文件大小高达 2 GB。你能推荐可以做到这一点的 JSON 解析器吗?我认为 perl 在这里非常有效