0

我有大约 400 个纯文本文件,每个文件大小约为 350MB。我想将头文件(包含 7 行纯文本)的内容添加到这 400 个文件中的每一个文件中。

目前,我正在遍历 400 个文件并使用cat,然后使用mv. 这是伪代码:

for $infile in $indir {
    cat $headerfile $infile > $infile.tmp
    mv $infile.tmp $infile
}

有没有更有效的方法来做到这一点?

4

1 回答 1

2

如果不复制文件的剩余部分,则无法插入文件。就操作而言,您的伪代码是最“有效”的方法。

可能有帮助的是将中间文件写入 tmpfs 以避免两次写入磁盘:

cat "$headerfile" "$infile" > /tmp/tmp
mv /tmp/tmp "$infile"

tmp如果要运行并行命令,请根据需要更改)。

于 2013-07-15T20:53:10.790 回答