Как вставить несколько файлов, более 20000 файлов, содержащих один столбец в одном файле? - PullRequest
0 голосов
/ 10 мая 2019

У меня есть несколько файлов (около 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 голосов
/ 10 мая 2019

Вам не нужно сначала объединять все файлы:

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
...