CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): homer (simpson)
날 짜 (Date): 2002년 10월 17일 목요일 오후 02시 19분 21초
제 목(Title): Re: sort 문제 질문: 만만할까요?


dat에 

+1_1
-2_1
1_1
0
1
+1
-2
-3_2
2
-3
2_1
-3_1
3
+2
+2_1
+1_2
+3

이렇게 들어 있다고 할때, - 먼저, 그 다음에 아무 부호도 없는것,
그 다음에 +부호 순으로 정열해야하는게 제일 까다로운 부분인것 같습니다.
하지만 방법은 있죠. 아래를 참조.

sed -e "s/^[0-9]/5\ &/" dat \
| sed -e "s/^-/0\ &/" \
| sed -e "s/^+/9\ &/" \
| awk -F_ '{print $1"."$2}' \
| sort -n +0 +1 +2 \
| sed "s/\.$//" \
| sed "s/\./_/" \
| awk '{print $2}'

부호가 없으면 첫 컬럼에 5, -면 0, +면 9, 그리고 나서 _를 .으로 바꿔서
세 컬럼을 소팅하고 나서 .을 정리하고나서 제일 앞에 붙였던 부호 정열용
컬럼을 제거.

결과는:

-3_2
-3_1
-3
-2_1
-2
0
1
1_1
2
2_1
3
+1
+1_1
+1_2
+2
+2_1
+3

쓰고보니 cdpark님 제안과 비슷하군요.

---
D'oh!
[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.