반복되는 문구를 증가하는 숫자로 대체

반복되는 문구를 증가하는 숫자로 대체

안녕하세요, 각 행의 "1" 값을 오름차순 값으로 바꾸는 명령줄 솔루션을 찾고 있습니다. 내 입력은 다음과 같습니다

K   X   1
K   X   1
K   X   1
K   X   1
K   X   1
K   X   1
K   X   1
K   X   1
K   X   1
K   X   1

나는 출력을 원한다.

K   X   1
K   X   2
K   X   3
K   X   4
K   X   5
K   X   6
K   X   7
K   X   8
K   X   9
K   X  10

어떤 도움이라도 대단히 감사하겠습니다.

감사해요

답변1

이는 옵션일 수 있습니다 awk.

$ awk '$3 = $3+i++' file
K X 1
K X 2
K X 3
K X 4
K X 5
K X 6
K X 7
K X 8
K X 9
K X 10

답변2

입력 라인의 번호를 순차적으로 다시 지정하려면 awk를 사용할 수 있습니다.레코드 번호, NR전임자.

awk '{printf "%s%4s%4d\n", $1, $2, NR}' input

답변3

내 Bash 솔루션(테스트되지 않음, K와 X에 공백이 포함되어 있지 않다고 가정):

i=1
while read a b c
do 
  echo $a $b $i
  i=$((i+1))
done < inputfile

올바른 출력 형식은 독자에게 연습 문제로 남겨집니다.

답변4

$ awk '$3=NR' file
K X 1
K X 2
K X 3
K X 4
K X 5
K X 6
K X 7
K X 8
K X 9
K X 10

앞쪽! :-)

관련 정보