Я хотел форматировать выходные данные, полученные с помощью Strace опции «Strace -s 1024 -vftT» и имеет что-то вроде журнала,Трассирование выход: время меры, принимаемые для системного вызова
... <log that is un-important>
24339 01:51:55 sendto(4, "<logging to required file>", <size>, MSG_NOSIGNAL, NULL, 0) = 114 <0.000050>
...
15016 01:51:55 sendto(594, "<some log to different file>, not included for time measure", <size>, 0, NULL, 0 <unfinished ...>
... <log from different threads>
15016 01:51:55 <... sendto resumed>) = 5 <0.000076>
... <log that is un-important>
29192 01:51:57 sendto(4, "<logging to required file>", <size>, MSG_NOSIGNAL, NULL, 0 <unfinished ...>
...
29192 01:51:58 <... sendto resumed>) = 109 <0.652744>
... <log that is un-important>
-> Я хотел найти общее время, затраченное на все вызовы sendto (4). -> Это также должно учитывать возобновленные вызовы sendto() после переключения потоков. -> Расчет времени должен игнорировать вызовы sendto() для другого файлового дескриптора, отличного от файлового дескриптора 4.
Так что мне нужно в этом случае мне нужен какой-то скрипт (желательно с помощью sed), чтобы добавить все тайминги, сделанные sendto (4, ...) (в этом примере это 0,000050 + 0,652744 = 0,652794).
Любые ссылки на подобные контексты приветствуются (я пробовал найти, но не смог найти что-либо релевантное).
HTTP: // WWW .grymoire.com/Unix/Awk.html может делать все, что вам нужно. Извините, но переполнение стека не является бесплатным кодированием. Удачи. – shellter
не стесняйтесь обновлять свой вопрос с помощью требуемого вывода (на основе введенного выше примера) (и в нужном формате), а также любые попытки решить вашу проблему. Включите текущие выходные сообщения и сообщения об ошибках. 'sed' может делать много вещей, но добавление, грандиозные итоги будут супер-гениальным пользователем. Awk предназначен для этого. Подсказка: 'awk '/ text 2 match/{timeval = $ (NF); gsub (/ [<> /," ", timeval); totTime + = timeval} END {print "totalTime =" totTime} '/ path/to/log/file'. Удачи. – shellter
Спасибо @Shellter, Ниже приведен пример вывода с обновленным скриптом ... '24339 01:51:55 sendto (4,« », , MSG_NOSIGNAL, NULL, 0) = 114 <0.000050> . .. 29192 01:51:57 sendto (4, "", , MSG_NOSIGNAL, NULL, 0 <недостроенный ...> ... 29192 01:51:58 <... sendto resumed>) = 109 <0.652744> всего = 0.652794, cnt = 2, average = 0.326397' –