![문자열을 순차 카운터로 교체하여 각 새 줄에서 카운터를 재설정합니다.](https://linux55.com/image/88005/%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EC%88%9C%EC%B0%A8%20%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A1%9C%20%EA%B5%90%EC%B2%B4%ED%95%98%EC%97%AC%20%EA%B0%81%20%EC%83%88%20%EC%A4%84%EC%97%90%EC%84%9C%20%EC%B9%B4%EC%9A%B4%ED%84%B0%EB%A5%BC%20%EC%9E%AC%EC%84%A4%EC%A0%95%ED%95%A9%EB%8B%88%EB%8B%A4..png)
파일 텍스트가 있습니다(이름이 색인화되어 있음).
Variazione su Eraclito, <link-1262>§§§</link>
vecchio e il mare, <link-715>§§§</link>, <link-895>§§§</link>, <link-104>§§§</link>
vento tra i salici, <link-355>§§§</link>
vergine e lo zingaro, <link-459>§§§</link>, <link-1564>§§§</link>
<link-...>§§§</link>의 내용에 §§§ 대신에 다음과 같이 프로그레시브 숫자를 추가해야 했습니다.
Variazione su Eraclito, <link-1262>1</link>
vecchio e il mare, <link-715>1</link>, <link-895>2</link>, <link-104>3</link>
vento tra i salici, <link-355>1</link>
vergine e lo zingaro, <link-459>1</link>, <link-1564>2</link>
답변1
방법은 다음과 같습니다 awk
.
awk 'c=0;{while(match($0, /§§§/) > 0){c++;sub(/§§§/, c, $0)}};1' infile
카운터 를 설정 c
하고 §§§
행에 카운터 값이 포함되어 있는 한 각 항목을 카운터 값으로 대체하고 각 대체 전에 후자를 증가시킵니다.§§§
c
답변2
그리고 perl
:
perl -pe '$n = 0; s/§§§/++$n/ge' < file
파일을 수정하려면:
perl -i -pe '$n = 0; s/§§§/++$n/ge' file