【发布时间】:2015-05-17 01:36:00
【问题描述】:
我有一个压缩文件tradedata.txt.gz,其中包含数百万条记录。该文件有大约 50 个字段,由 | 分隔。第45个字段可以包含0000、0002、0003、0004和空值(null)等值。我想过滤文件并仅获取值为 0000,0002 和空白值的那些行。我想使用awk、perl 或任何其他语言以最快的方式完成此操作。
例如,数据看起来像这样(我只显示几个字段以进行说明)。
abc|234|test|0000|test2|1
abc|2343|test1|0002|test2|1
abc|2345|test3|0004|test2|1
abc|2346|test4|0004|test2|1
abc|2347|test5|0003|test2|1
abc|2348|test6||test2|1
abc|234|test|0003|test2|1
过滤数据后的结果应该是:
abc|234|test|0000|test2|1
abc|2343|test1|0002|test2|1
abc|2348|test6||test2|1
如您所见,我只提取值为 0000,0002 且为空白的记录。 有人可以使用 awk、perl 或任何其他最快的语言来帮助解决这个请求吗?
【问题讨论】:
-
你有没有尝试过?
-
我是一名预言机开发人员。我尝试使用 oracle,但 oracle 加载工具功能不足以拥有复杂的过滤器。我的一个朋友告诉我,这可以在 unix 中使用 awk、perl 等来完成,但我不知道这些语言。
-
那我怕你问错地方了。 Stack Overflow 旨在帮助您 - 作为一名程序员 - 找出问题并解决它们。这不是为你编写代码。