Раствор Баша.
#!/bin/bash
pa=0 ; s=0 ;
while read a b ; do \
if [ "$a" == "$pa" ] ; then \
s=$(($s+$b)) ;
else
if [ "$pa" != 0 ] ; then \
echo $pa $s ;
fi ;
pa=$a ; s=$b ;
fi ;
done < <(cat j.txt | awk -F'|' '{printf("%s %s\n",$3,$6)}' | sort -n)
echo $pa $s
Инициал. Предыд. А и СУММ
Сократите ввод в поля 3 и 6 и отсортируйте их по номеру
Цикл, пока поле 3 остается прежним, добавить поле 6 в SUM
Если поле 3 изменяется, но Предыдущее A не равно 0, вывести Предыдущее A и СУММ и повторно инициализировать Предыдущее А в а и СУММ в последнее прочитанное поле 6.
Вывод последнего предыдущего A и SUM.
Выход данного входа:
00788 1950
03361 2334
08385 650
08767 650
10234 945
28774 2689
30201 2984
34032 1389
43097 945
kill -HUP
посылает процессу сигнал HANGUP. Это не обязательно убивает процесс. Проверка справочной страницы гласит, что
Also, in v3 a full restart will be done in order to read changed configuration files. Note that this means a full rsyslogd restart is done. This has, among others, the consequence that TCP and other connections are torn down.
Значит, ваша дополнительная -заметка о TCP тоже не поможет. Поскольку UDP не требует установления соединения, вы все равно можете потерять часть. Но если пакет приходит в течение этого крошечного промежутка времени, вы можете получить ответ ICMP, говорящий, что порт не прослушивается, в зависимости от того, как настроены сервер/брандмауэры. Как отправляющее приложение будет обрабатывать этот ответ ICMP, вам также необходимо рассмотреть.