读取数百万个文件(按特定顺序)并将它们放入一个大文件中---快速

时间:2011-08-19 13:25:21

标签: bash

在我的bash脚本中,我有以下内容(具体而言,我保留了原始名称; 有时人们询问背景等,然后原始名称更有意义):

 tail -n +2 Data | while read count phi npa; do
   cat Instances/$phi >> $nF
 done

也就是说,跳过文件数据的第一行,然后是所有行 读取形式“r c p n”,并附加文件Instances / p的内容 提交$ nF(按数据给出的顺序)。

在典型的例子中,数据有数百万行。所以也许我应该写一个 C ++应用程序。但是我想知道是否有人知道更快 解决方案只是使用bash?

1 个答案:

答案 0 :(得分:4)

这里我使用cut而不是你的while循环,但如果它为你提供了一些实用工具,你可以重新介绍它。循环必须每次迭代输出phy变量一次。

tail -n +2 Data | cut -d' ' -f 2 | xargs -I{} cat Instances/{} >> $nF

这会将cat次调用的次数减少到尽可能少,这样可以提高效率。我也相信在这里使用cut可以进一步改进。