내 데이터가 다음과 같다고 가정해 보겠습니다.
*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
필드는 공백으로 구분됩니다.
여기서는 각 에 있는 네 번째 데이터 필드의 합계를 얻고 싶습니다 *dnet
. 네 번째 필드 데이터가 있는 필드도 있고 그렇지 않은 필드도 있습니다. 각 개별 네 번째 필드 합계 값을 원합니다 *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