일부 정보를 보고하는 파일이 있습니다. $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
초기화 할 수 있습니다 .s
BEGIN{s=0}