在我的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?
答案 0 :(得分:4)
这里我使用cut
而不是你的while循环,但如果它为你提供了一些实用工具,你可以重新介绍它。循环必须每次迭代输出phy
变量一次。
tail -n +2 Data | cut -d' ' -f 2 | xargs -I{} cat Instances/{} >> $nF
这会将cat
次调用的次数减少到尽可能少,这样可以提高效率。我也相信在这里使用cut
可以进一步改进。