이런 txt 파일이 있어요
32 1
32 2
32 3
32 4
32 5
17 8
17 9
17 10
17 11
14 33
14 34
14 35
이런 txt 파일을 받고 싶어요! 그래서 우리는 필드 2에서 필드 1에 있는 값의 최소값과 최대값을 가져와서 인쇄합니다.
32 1 5
17 8 11
14 33 35
어떤 아이디어가 있나요? 감사해요.
답변1
답변2
사용 awk
:
awk 'min[$1] == "" || $2 < min[$1] { min[$1] = $2 }
max[$1] == "" || $2 > max[$1] { max[$1] = $2 }
END { for (i in min) print i, min[i], max[i] }' file |
sort -rn
max
이는 및 연관 배열의 첫 번째 열과 관련된 최대값과 최소값을 기억합니다 min
. 모든 데이터가 처리된 후 값이 인쇄됩니다.
마지막 sort -rn
것은 출력이 내림차순으로 정렬되도록 보장합니다.
답변3
입력한 내용을 기준으로 정렬:
$ awk '$1 != p{printf "%s%s",max,$0; p=$1} {max=OFS $2 ORS} END{printf "%s", max}' file
32 1 5
17 8 11
14 33 35