1

я не могу запустить этот код из-за ошибки

awk 'BEGIN {x=0;y=0} { match($13,/([0-9]+)/,a); x = x + a[1]; match($12,/([0-9]+)/,b); y = y + b[1]} END {print "rxPackets:" x " txPackets:" y}' yourfile

проблема ", а" и ", б", которые помещают числа в массиве

input это несколько строк вроде этого:

<Flow flowId="1" timeFirstTxPacket="+0.0ns" timeFirstRxPacket="+924100.0ns" timeLastTxPacket="+199984927558.0ns" timeLastRxPacket="+199675473275.0ns" delaySum="+2287566662167.0ns" jitterSum="+65280162191.0ns" lastDelay="+3511349483.0ns" txBytes="161956" rxBytes="116536" txPackets="3125" rxPackets="2251" lostPackets="640" timesForwarded="0">

и вывод получит мне сумму rxPackets и txPackets отдельно, например, в 100 строк, но это даст мне ошибку

мне нужно сделать это любым возможным способом, спасибо

1 ответ1

2

Попробуйте запустить две команды по отдельности, например так:

   awk 'BEGIN {x=0} { match($13,/([0-9]+)/,y); x = x + y[1]}END {print "rxPackets:" x}' 
   awk 'BEGIN {x=0} { match($12,/([0-9]+)/,y); x = x + y[1]}END {print "txPackets:" x}' 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .