1. awkで行番号を追加

テキストファイルに行番号を追加する方法です。

以下の内容のsample.txtファイルを用意し、これに行番号を追加して表示したり、リダイレクトでファイルに保存します。

aaaa
bbbb
cccc
dddd
eeee
ffff
gggg
hhhh
iiii
jjjj
kkkk
mmmm

awkで行番号を追加

テキストファイルの各行先頭に、行番号を追加して表示する場合、awkを使うと以下のようになります。

awk '{print NR": " $0 }' [ファイルパス]
ファイルにしたい場合はリダイレクトを使用します。
awk '{print NR": " $0 }' [ファイルパス] > [行番号有りファイル]

例 sample.txtに行番号を追加する場合は、以下のように実行します。

awk '{print NR": " $0 }' sample.txt
1: aaaa
2: bbbb
3: cccc
4: dddd
5: eeee
6: ffff
7: gggg
8: hhhh
9: iiii
10: jjjj
11: kkkk
12: mmmm
13: 

  • 行番号の桁数指定と右揃え

  • 行番号の桁数を揃えて見やすくしたい場合、printfを使えば可能です。 以下は行番号を4桁、右揃えにします。 2桁にしたい場合は "%2d"、6桁にしたい場合は"%6d"を指定します。

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

    例 sample.txtに、右揃えで4桁の行番号を追加する場合

    awk '{printf("%4d: %s\n", NR, $0) }' sample.txt
       1: aaaa
       2: bbbb
       3: cccc
       4: dddd
       5: eeee
       6: ffff
       7: gggg
       8: hhhh
       9: iiii
      10: jjjj
      11: kkkk
      12: mmmm
      13: 

    例 2桁の行番号にする場合

    awk '{printf("%2d: %s\n", NR, $0) }' sample.txt
     1: aaaa
     2: bbbb
     3: cccc
     4: dddd
     5: eeee
     6: ffff
     7: gggg
     8: hhhh
     9: iiii
    10: jjjj
    11: kkkk
    12: mmmm
    13:  

  • 行番号の桁数指定と左揃え

  • 行番号の桁数を指定して左揃えにする場合は、"%"と桁数の間に"-"を追加します。

    awk '{printf("%-4d: %s\n", NR, $0) }'

    例 sample.txtに、左揃えで4桁の行番号を追加する場合

    awk '{printf("%-4d: %s\n", NR, $0) }' sample.txt
    1   : aaaa
    2   : bbbb
    3   : cccc
    4   : dddd
    5   : eeee
    6   : ffff
    7   : gggg
    8   : hhhh
    9   : iiii
    10  : jjjj
    11  : kkkk
    12  : mmmm
    13  : 

  • 行番号の桁数指定と0でパディング

  • 指定桁数で空いた個所を0でパディングしたい場合、"%"のあとに"0"を入れます。

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

    例 sample.txtに、4桁で0パディングする場合

    awk '{printf("%04d: %s\n", NR, $0) }' sample.txt
    0001: aaaa
    0002: bbbb
    0003: cccc
    0004: dddd
    0005: eeee
    0006: ffff
    0007: gggg
    0008: hhhh
    0009: iiii
    0010: jjjj
    0011: kkkk
    0012: mmmm
    0013: