Linux ターミナルで grep または awk コマンドを使用して、テキスト ファイルに増分整数行を追加するにはどうすればよいですか?

Linux ターミナルで grep または awk コマンドを使用して、テキスト ファイルに増分整数行を追加するにはどうすればよいですか?

1000 万行以上のテキスト ファイルがあります。ファイルは次のようになります。

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

関連情報