Вы могли сделать это с помощью двух экземпляров находки (1)
Всегда существует cpio (1)
(cd "$soure" && find … | cpio -pdVmu "$destination")
Проверьте аргументы в пользу cpio. Те я дал
С awk:
$ awk '
{arr[int(($1%50?$1:($1-1))/50)]+=$2};
END{for(k in arr){print k*50, arr[k]}}
' file.txt | sort -k1,1n
Можно управлять форматом выходного использования printf
в awk
также.
$ awk '
{arr[int(($1%50?$1:($1-1))/50)]+=$2};
END{for(k in arr){printf "%-11s%-5s\n", k*50, arr[k]}}
' file.txt | sort -k1,1n
0 15
50 22
100 205
600 10
850 90
Это должно сделать это:
sort -g file | awk 'BEGIN{N=50}{
if($1<=N){out[N-50]+=$2}
else{while($1>=N){N+=50;};
out[N-50]+=$2}
}END{for(i in out){print i,out[i]} }' | sort -g