Мы можем построить массив «первое значение, сумма второго значения», а затем после того, как весь файл был прочитан в мы можем распечатать результаты
awk '{a[$1]+=$2} END { for (v in a) { print v,a[v]}}' datafile
Если вы хотите, чтобы вывод был отсортирован, то самый простой способ - передать его через sort:
awk '{a[$1]+=$2} END { for (v in a) { print v,a[v]}}' datafile | sort -n
Формулировку вашего вопроса немного трудно понять, но я думаю, что вы ищете что-то вроде :
command &
command &
wait
Сценарий выполнит две команды в фоновом режиме и будет ждать ответа.
Однако в вашем случае вам нужно быть осторожным с условием гонки. Вероятно, вы захотите отправить вывод отдельных команд во временные файлы, а затем катнуть их в основной файл, поэтому вы, вероятно, сделаете что-то вроде :
command > "${tmp1}" &
command > "${tmp2}" &
wait
cat "${tmp1}" "${tmp2}" >> "${main}"
rm -f "${tmp1}" "${tmp2}"
Update: Вы можете попробовать xargs (например, https://stackoverflow.com/questions/15755422/linux-bash-script-to-ping-multiple-hosts-simultaneously)
С помощью GNU Parallel вы можете сделать это:
date >> teste.txt
cat hosts.txt | parallel -j0 ping -c 10 -i 1 {} >> teste.txt
date >> teste.txt