다음으로 시작하는 파일이 있습니다.
male 9
male 11
male 9
male 1
female 4
female 13
male 14
내가 사용한다면
sort -u -k1,1 -k2,2n
이 반환
female 13
female 4
male 1
male 11
male 14
male 9
male 9
한 자리 숫자가 01, 02 등으로 표시되어 올바르게 정렬되도록 하려면 어떻게 해야 합니까?
고쳐 쓰다:
-u
뒤로 옮기라고 하신 댓글 작성자의 말씀이 맞습니다.
sort -k1,1 -k2,2n -u
효과는 매우 좋습니다. 감사합니다!
답변1
"를 정의하지 않았습니다.올바른 정렬" 어디에서나 첫 번째 열을 기준으로 그룹화하고 두 번째 열의 숫자 값을 오름차순으로 정렬하고 중복 값을 제거하고 싶다고 가정합니다. 이 솔루션은 실제로 원하는 것이 아니지만 원하는 것 같습니다. 보고 싶어.
sort -k1,1 -k2,2n -u datafile
female 4
female 13
male 1
male 9
male 11
male 14
두 번째 열을 두 자리 숫자로 채우려면 다음을 사용할 수 있습니다.
xargs printf "%s %02d\n" <datafile
male 09
male 11
male 09
male 01
female 04
female 13
male 14
답변2
두 번째 열로만 정렬하려면 다음을 시도해 보세요(GNU 사용 sed
).
sed -E 's/ ([0-9]{1}$)/ 0\1/' file | sort -u -k2,2n
산출:
male 01
female 04
male 09
male 11
female 13
male 14