2013-06-14 1 views
1

어떻게 줄의 마지막 숫자로 파일을 정렬합니까?유닉스 : 마지막 줄 수순으로 정렬

모든 줄의 마지막 문자가 숫자라고 가정합니다. INPUT :

facebook.com/pageA,2,11,11 
facebook.com/pageB,0,0,20 
facebook.com/pageC,0,0,6 
facebook.com/pageD,1,22,239 

원하는 출력 :

facebook.com/pageC,0,0,6 
facebook.com/pageA,2,11,11 
facebook.com/pageB,0,0,20 
facebook.com/pageD,1,22,239 

도움말?

+0

줄의 수가 쉼표로 구분 된 동일한 수의 열이라고 가정합니다. 'man sort'를 읽어서 구분자를 어떻게 지정하고 어떻게 숫자를 정렬하는지 찾을 수 있습니다. – Jokester

+0

예가 귀하의 질문과 일치하지 않습니다. 어느 것을 원하십니까 : 마지막으로 _digit_ 또는 마지막 _number_로 정렬 하시겠습니까? –

+0

마지막 숫자 .. 숫자와 숫자의 차이는 무엇입니까? 그들은 똑같은 것을 의미합니까? – user1899415

답변

5

sort을 사용할 수 있습니다.

sort -n -t, -k4 INPUT 
+0

입력에는 4 개의 열이 있습니다. – falsetru

2

사용 rev 각 줄을 반대로하고 정렬 한 후 다시 역 : 당신의 입력 파일은 각 라인에서 서로 다른 열이있는 경우

rev < $file | sort | rev 
+0

한숨 ... OP의 예가 질문과 일치하지 않습니다. 나는 그 질문에 답했다. 분명히 목표는 줄의 마지막 _digit_가 아니라 줄의 마지막 _number_로 정렬하는 것입니다. 사람들이 요구하는 것 대신에 원하는 것을 제공하는 것은 매우 어렵습니다. –

+0

마지막 번호가 반전되고 비교되므로 OP의 원하는 출력이 생성되지 않습니다. OP는 "숫자"를 올렸지 만 실제로 숫자를 원합니다. – falsetru

+1

오른쪽. 내 의견을 읽으십시오. –

2

다음 첫 번째 열으로 마지막 열을 만들 수 있습니다, 그것을 기준으로 정렬 한 다음 제거하십시오.

awk '{print($NF,$0)}' FS=, OFS=, inputFile | sort -t, -nk1 | cut -f2- -d,