다른 열의 항목을 고려하여 열 값 합계

다른 열의 항목을 고려하여 열 값 합계

일부 정보를 보고하는 파일이 있습니다. $5열의 상대값을 기준으로 $6열의 값을 합산하고 싶습니다. 자세히 설명하자면, 열 5의 값이 -2.0보다 큰 경우 열 6의 상대 값을 고려해야 하며, 그렇지 않으면 합계에 포함하지 않습니다.

입력.txt

2931,401,-0.3,C,-0.5,0.1,-2,C
2935,404,-0.2,S,-3.0,0.5,4,O
2940,414,1.3,C,-0.7,,,
2947,509,2.0,N,-2.0,5,-0.4,C

Expected_output.txt -> 열 $6, 행 1(0.1) 및 행 4(5)의 합계를 포함해야 합니다(행 3의 열 6이 비어 있지 않으면 합계에서 고려해야 함).

5.1 

사용하려고 하는데 awk적합한 방법을 찾을 수 없습니다. 누구든지 방법을 제안할 수 있나요?

감사해요.

답변1

awk -F, '($5>=-2){s+=$6}END{print s}' input.txt
  • -F,필드를 쉼표로 구분하도록 awk에 지시합니다.
  • the ($5>=-2)조건입니다. true이면 $6에 추가됩니다 s.
  • s마지막에 인쇄됩니다 . 합계할 항목이 없으면 인쇄 하거나 0( )으로 s?s:0초기화 할 수 있습니다 .sBEGIN{s=0}

관련 정보