Linux 터미널에서 grep 또는 awk 명령을 사용하여 텍스트 파일에 증분 정수 줄을 추가하는 방법은 무엇입니까?

Linux 터미널에서 grep 또는 awk 명령을 사용하여 텍스트 파일에 증분 정수 줄을 추가하는 방법은 무엇입니까?

천만 줄이 넘는 텍스트 파일이 있습니다. 파일은 다음과 같습니다.

1902400023
1902400029
1902400031
1902400032

제목, 증분 ID 번호 및 상수 SHORTCODE를 추가하고 싶습니다. 예상되는 결과:

ID,MSISDN,SHORTCODE
1,1902400023,1
2,1902400029,1
3,1902400031,1
4,1902400032,1

이는 파일 끝까지 계속되고 다른 파일에 기록됩니다.

답변1

awk다음 코드가 필요하다고 생각합니다

awk 'BEGIN { OFS = ","; header="ID,MSISDN,SHORTCODE" } NR == 1 { print header } 
           { $2 = $0; $1 = NR; $3 = 1; }1' file

이 절에서는 출력 필드 구분 기호를 연산자 BEGIN로 설정 하고 헤더 문자열을 초기화합니다. ,파일을 처리할 때 첫 번째 줄에 헤더를 삽입하고 다음 줄에 OP에 표시되는 줄을 삽입합니다. 카운터를 증가시키는 데 사용하는 줄 번호를 추적하는 NR특수 변수입니다 .awk

답변2

여기에서 다음 awk 명령을 사용하여 줄 번호를 추가할 수 있습니다.

$ awk '{printf("%d:%s\n", NR, $0)}' millionlinetextfile > linenumberedfile

관련 정보