2012-10-20 6 views
2

두 번째 열의 두 번째 문자로만 파일을 번호순으로 정렬하고 싶습니다. 이 같은 샘플 파일 :linux가 열 내에서 정렬

aa 19 
aa 189 
aa 167 
ab 13 
nd 23 
at 32 
ca 90 

는 내가 명령 sort -n -k 2.2,2.2 [filename]을 사용

ca 90 
at 32 
ab 13 
nd 23 
aa 167 
aa 189 
aa 19 

같은 결과를 기대합니다. 그러나 그것은 나에게이 같은 결과를 보여줍니다

aa 167 
aa 189 
aa 19 
ab 13 
nd 23 
at 32 
ca 90 

그것은 정답되지 않습니다. 아무도 내 명령에 무슨 문제가 있는지 아니?

답변

3

올바른 열 구분 기호를 지정하지 않았으므로 sort은 공백 대신 탭이라고 가정합니다.

sort -t ' ' -nk 2.2 

잘 작동합니다.

편집 : 내 man 페이지에서 모든 공백은 기본적으로 구분 기호로 계산되지만 실제로는 -t ' '을 추가하면 해결됩니다.

+0

편집 해 주셔서 감사합니다. 그러나 이상한 것은 sort -n -k 2를 사용하여 두 번째 열만 정렬하는 것입니다. 구분 기호가 공백임을 알 것입니다. 결과는 문제가되지 않습니다. 그 이유를 아십니까? –

+0

@stevezhou이 동작을 확인했지만, 왜 그런지는 잘 모르겠습니다. –

0
sort -t ' ' -k2.2,2.2 filename