이미 아래와 같이 정렬 된 숫자 목록이 있다고 가정 해 보겠습니다.
100
222
343
423
423
500
내가 원하는 것은 동일한 값에 동일한 순위가 할당되도록 순위 필드를 만드는 것입니다.
100 1
222 2
343 3
423 4
423 4
500 5
순위 필드를 모방하기 위해 다음 코드를 사용하고 있습니다.
awk '{print $0, NR}' file
아래에 나와 있지만 기술적으로는 행 번호입니다.
100 1
222 2
343 3
423 4
423 5
500 6
어떻게해야합니까? 나는 완전 초보자 bash
이므로 학습을 위해 약간의 설명을 추가 할 수 있다면 정말 감사하겠습니다.
그것은 awk의 직업입니다.
$ awk '{if($0!=p)++r;print $0,r;p=$0}' file
산출:
100 1
222 2
343 3
423 4
423 4
500 5
설명 :
$ awk '{ # using awk
if($0!=p) # if the value does not equal the previous value
++r # increase the rank
print $0,r # output value and rank
p=$0 # store value for next round
}' file
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다