如何将多个文件(包含一列的20,000个文件)粘贴到一个文件中?

时间:2019-05-10 06:18:38

标签: shell awk paste

我有多个文件(大约25000个文件仅包含一列),名称类似于b-1.txt,b-2.txt,b-3.txt,.......,b-24999 .txt,b-25000.txt。因此,我想将所有25000个文件数据粘贴到一个文件中,然后再对行进行平均。但是,当我使用粘贴命令时,它给我打开了太多文件的错误。
我已经使用以下给定命令:

paste b-*.txt > 1_term.txt  
awk '{sum=0; for (i=1; i<=NF; i++) {sum=sum+$i;} m=sum/NF; print  m; }' 1_term.txt > square_average.txt

所以,请帮助我如何将多个文件粘贴到一个文件中?

1 个答案:

答案 0 :(得分:0)

您不需要先合并所有文件:

seq 1 25000 |\
xargs -I{} cat b-{}.txt |\
awk '{sum=0; for (i=1; i<=NF; i++) {sum=sum+$i;} m=sum/NF; print  m; }' > square_average.txt

如果您仍然想这样做,可以使用相同的方法:

seq 1 25000 | xargs -I{} cat b-{}.txt > 1_term.txt