줄의 시작 부분에 숫자 추가

줄의 시작 부분에 숫자 추가

예를 들어 'E'를 찾을 때마다 변경되는 값을 기반으로 파일에 증분 값을 추가하려고 합니다. (이것은 어떤 값으로 대체될 수 있습니다.) 제가 시도한 일부 온라인 조사에서:

awk '/E/{sub("E", "E"++v)}1' output.txt > output2.txt

하지만 이는 'E' 자체 뒤에 증분 값만 추가합니다. 아니요, 이것은 학교 과제가 아닙니다. 이 데이터는 다음에 해당 값이 ID 필드인 MySQL 테이블에 수집됩니다. 이 파일(매우 큰 버전)은 단어 해독기 애플리케이션을 위해 MySQL 테이블에 수집됩니다.

샘플 파일: output.txt

aaa
aba
acaE
baa
bab
badE
caa
cab
cdeE
ddd

샘플 파일: 원함

1aaa
1aba
1acaE
2baa
2bab
2badE
3caa
3cab
3cdeE
4ddd

답변1

다음과 같이 할 수 있습니다:

awk '{print i $0}; /E$/{i++}' i=1 file

기본적으로 설정 i=1되어 있지 않기 때문에 초기 값으로 설정합니다 . 그런 다음 해당 줄이 일치하는지 확인 하고 증가합니다 .{print i $0}i$0Ei

αѓsнιι가 제안한 매우 유사한 대안은 다음과 같습니다.

awk '{print i+1 $0}; /E$/{i++}' file 

처음에 설정할 필요가 없도록 합산 1합니다 .ii=1

관련 정보