【发布时间】:2016-06-15 08:23:39
【问题描述】:
我在 3 个不同的文件夹中有很多大文件,我想从中复制从 X 到 Y 的同名文件的行,并将它们附加到同名的新文件中。 我试过做
ls seed1/* | while read FILE; do
head -n $Y | tail -n $X seed1/$FILE seed2/$FILE seed3/$FILE > combined/$FILE
done
这对 $FILE 的第一个值起作用,但不会返回提示,因此我无法执行此循环。
例如,我在三个不同的文件夹seed1、seed2和seed3中有以下文件:
seed1/foo.dat
seed1/bar.dat
seed1/qax.dat
seed2/foo.dat
seed2/bar.dat
seed2/qax.dat
seed3/foo.dat
seed3/bar.dat
seed3/qax.dat
我想将所有文件的第 10 到 20 行合并到一个合并文件夹中:
combined/foo.dat
combined/bar.dat
combined/qax.dat
每个文件总共有 30 行,种子 1、种子 2 和种子 3 各有 10 行。
【问题讨论】:
-
提示消失是因为你没有给'head'一个文件参数。使用 ls 生成 FILE 然后覆盖 FILE 看起来也很可疑。