пожалуйста, мне нужна ваша помощь по этой теме.
У меня есть 3 временных файла и nbf.txt.
Я хочу скопировать строки каждого часа из этих 3 временных файлов в nbf.txt:
внутри каждого временного файла у нас есть
временный файл на каждый час:
tmp1
Полученная транзакция
======================
2020-05-29 00-> 12
tmp2
Неудачная транзакция
===================
2020-05-29 00-> 1 не удалось
temp3
Неудачных открытых сессий в час
==============================
2020-02-29 00-> 2 сеанса
поэтому мне нужно использовать sed для каждого временного файла:
Я использую в своем скрипте следующую команду:
sed -i -e '1,$p' nbf.txt -e '1,3d' tmp1
sed -i -e '1,$p' nbf.txt -e '1,3d' tmp2
sed -i -e '1,$p' nbf.txt -e '1,3d' tmp3
результат внутри nbf.txt NB: пожалуйста, мне нужен результат ниже, используя sed или хвостик или awk
Received Transactions Per Hour
==============================
2020-02-29 00->69646 requests
2020-02-29 23->82666 requests
2361523 Received Transactions
Rejected Transactions Per Hour
===============================
0 Rejected Transactions
Failed Open Sessions Per Hour
==============================
2020-02-29 00->2 sessions
2020-02-29 22->1 sessions
8 Failed Sessions
но не работает корректно
В общем, нет смысла трубить от cat
к grep
к awk
и даже другому awk
потому что один awk
может делать все это очень хорошо.
$ awk -F'[ :]' '/:/ { datestring=$1; a[$2]++;}; END { for(i=0;i<24;i++) '\
'{ ind=sprintf("%02d",i); '\
'printf "%s %2s->%7d\n",datestring,ind,(a[ind]>0) ? a[ind] : 0 ; }; }' \
Received_transaction.log-$Hour
2020-05-28 00-> 0
2020-05-28 01-> 0
2020-05-28 02-> 0
2020-05-28 03-> 0
2020-05-28 04-> 0
2020-05-28 05-> 0
2020-05-28 06-> 0
2020-05-28 07-> 0
2020-05-28 08-> 0
2020-05-28 09-> 0
2020-05-28 10-> 0
2020-05-28 11-> 0
2020-05-28 12-> 13
2020-05-28 13-> 0
2020-05-28 14-> 0
2020-05-28 15-> 0
2020-05-28 16-> 0
2020-05-28 17-> 0
2020-05-28 18-> 0
2020-05-28 19-> 0
2020-05-28 20-> 0
2020-05-28 21-> 0
2020-05-28 22-> 0
2020-05-28 23-> 0