30보다 작은 값을 갖는 두 번째 열의 첫 번째 열 번호를 모두 나열합니다.

30보다 작은 값을 갖는 두 번째 열의 첫 번째 열 번호를 모두 나열합니다.

내 테스트 파일은

1599027 48.5
1599027 29.7
1599028 49.9
1599028 19.4
1599029 49.5
1599026 19.2
1599026 19.2

여기에서 모든 대표 행의 두 번째 열 값이 <30이어야 하는 첫 번째 열의 숫자를 가져와야 합니다. 위 테스트 파일에서는 단 하나의 숫자 "1599026"만이 위 조건을 충족합니다(나열된 행은 모두 19.2 < 30입니다). 첫 번째 열의 다른 두 숫자는 행 중 하나에서 >30을 갖습니다.

답변1

$ awk '{ sum[$1] += ($2 >= 30) } END { for (i in sum) if (!sum[i]) print i }' file
1599026

awk이는 이름이 지정된 파일에 있는 데이터의 첫 번째 열에 있는 각 고유 숫자에 대한 합계를 생성하는 데 사용됩니다 file. 숫자의 합은 두 번째 열의 값이 30보다 크거나 같은 횟수입니다.

코드 끝 의 블록 awk에서 합이 0이 되는 모든 숫자를 인쇄합니다.END

관련 정보