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

관련 정보