希望得到帮助。我有一个300万行文件,data.txt,用“|”分隔,例如。提取一列然后在一个大的分隔文件中找到它的uniq项目的最快方法
"4"|"GESELLSCHAFT FUER NUCLEONIC & ELECT MBH"|"DE"|"0"
"5"|"IMPEX ESSEN VERTRIEB VON WERKZEUGEN GMBH"|"DE"|"0"
我需要提取第三列(“DE”),然后将其限制为其唯一值。这里是我想出(观看或gsort因为我运行MacOS和只有通过GNU排序“--parallel”选项):
gawk -F "|" '{print $3}' data.txt \
| gsort --parallel=4 -u > countries.uniq
这工作,但它是不是很快速。我有类似的任务提出了一些更大的(11M记录)文件,所以我想知道是否有人可以指出一个更快的方式。
我希望留在shell中,而不是说Python,因为一些相关的处理在shell中更容易完成。
非常感谢!
为什么不使用'uniq'? – Yaron
我认为在shell中没有太多开销,而像gawk和gsort这样的unix工具是高度优化的。 – clemens
如果以下解决方案对于您的输入更快,您能评论吗? – Inian