私のデータが次のようになるとしましょう。
*dnet *1234 1.2
1 port *12 2.3
3 port1 *34 0.2
7 *15 0.1
*dnet *234 0.2
2 *12 0.1
4 *123 *234 1.2
フィールドはスペースで区切られます。
ここでは、各にある4番目のデータフィールドの合計を取得したいと思います*dnet
。 4番目のフィールドデータがあるフィールドもあり、そうでないフィールドもあります。各個別の4番目のフィールドの合計値が必要です*dnet
。
試してみましawk
たが入手できませんでした。誰でも助けてくれてありがとう。
上記の出力は次のとおりです。
*dnet *1234 1.2 2.5
*dnet *234 0.2 1.2
答え1
$ awk '/dnet/{if (NR>1) print dnet, sum+0; dnet=$0; sum=0} {sum+=$4} END{print dnet, sum+0}' file
*dnet *1234 1.2 2.5
*dnet *234 0.2 1.2