안녕하세요, 각 행의 "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
앞쪽! :-)