
10 awhdk;
14 hjoeow;
2 kdkld;
4 jkjdksl
첫 번째 열(즉 개수)을 기준으로 이를 정렬하는 방법은 무엇입니까?
나는 다음과 같은 결과를 얻고 싶습니다.
14 hjoeow;10 awhdk;4 jkjdksl;2 kdkld
첫 번째 열을 정렬하여 인쇄하려면 두 열이 모두 필요합니다.
답변1
-k
입력 줄에서 정렬 키가 시작하고 끝나는 위치를 지정하는 데 사용할 수 있습니다 .
기본적으로 어휘 정렬이 아닌 숫자 정렬을 트리거하려면 옵션 을 사용 -n
하거나 정렬 키 사양에 추가하세요 . n
그리고 -r
정렬을 반대로 합니다.
여기서 숫자 정렬의 경우 정렬 키를 정렬 명령으로 제한할 필요가 없습니다. 그렇게 하는 경우:
sort -rn file
전체 줄을 숫자로 처리합니다. 예를 들어 선 14 hjoeow;
은 숫자로 이해됩니다 14
.
당신은 할 수 있습니다 :
sort -bk 1,1rn file
첫 번째 필드에서만 정렬하지만 아무런 차이가 없습니다.
줄을 연결하는 명령은 옵션 paste
과 함께 제공됩니다 -s
. 로 구분자를 지정할 수 있습니다 -d
. \0
다음을 의미하는 구분 기호의 특수 값입니다.아무 것도 없이 참여하세요. 따라서 예상되는 결과를 얻으려면 다음을 수행하십시오.
sort -rn file | paste -sd '\0' -
POSIX에서는 paste
파일 이름이 전달되어야 합니다. -
다시 한번 의미하는 특별한 값입니다.표준 입력. 일부 구현에서는 이를 생략할 수 있습니다 paste
.