답변:
이것을 시도하십시오 :
sort -s -n -k 1,1
-s
지정된 키의 일부가 아니 었 다에 정렬 정렬 비활성화 '마지막 수단'.
는 -k 1
두 번째 열을 정렬하려고하면 당신이 볼 수 있듯이, 실제로 평균 "이 필드와 다음의 모든"숫자 정렬의 맥락에서 않습니다. 당신은 단지 나머지 줄로 가면서 관계가 깨지는 것을보고있을뿐입니다. 그러나 일반적 으로 필드 1 에서만-k 1,1
정렬 하도록 지정해야합니다 .
join
입력 한 필드에서 입력을 정렬하는 것입니다. 따라서이 출력은 첫 번째 필드에서 정렬되며 결합 할 수 있습니다.
-k 1,1
합니다 (이 " 1 "부분은) 나를 위해 더 나은 작동하지 않습니다. 무엇 작동 것은 -s -k 1
함께, -n
당신이 그것을 필요로하는 경우에.
제공된 답변 중 어느 것도 나를 위해 일반적으로 효과가 없습니다.
모두 sort -s -k 2 file1
와 sort -n -k1,1
이 파일에 추가 정렬을 수행합니다
# cat file1
3 3 5
3 2 3
1 4 7
0 1 2
3 2 1
방금이 정확한 작업을 수행하고 쉘 루프를 사용했습니다. 정렬 된 열의 각 고유 값에 대해 전체 파일을 읽어야하므로이 솔루션은 매우 큰 파일에서 제대로 작동하지 않을 수 있습니다.
여기에서 파일은 열 2에서만 정렬됩니다.
# awk '{print $2}' file1 | sort | uniq | while read index
do
awk -v var=$index '$2 == var { print $0}' file1
done
0 1 2
3 2 3
3 2 1
3 3 5
1 4 7
sort -s -k2,2 file1