※MACターミナル(BSD系)での動作確認です。

スポンサーリンク

grepの-nオプションで行番号と検索行を表示

grepの-nオプションで行番号と検索行をセットで表示できます。

例えば、下記のin.txtがあったとします。

 $ cat in.txt 
kensakufind
kensakuawk
kensakused
linegrep
kensaku3

"kensaku"の文字列を行番号とセットで検索するには、下記のように-nオプションを指定します。

 $ grep -n "kensaku" in.txt 

下記が実行結果になります。

 $ grep -n "kensaku" in.txt 
1:kensakufind
2:kensakuawk
3:kensakused
5:kensaku3

スポンサーリンク

nlコマンドとgrepを組み合わせて、行番号を表示

下記のように、nlコマンドとgrepを組み合わせて、行番号を表示することもできます。

 $ nl in.txt | grep "kensaku"

下記が実行結果になります。
 $ nl in.txt | grep "kensaku"
     1	kensakufind
     2	kensakuawk
     3	kensakused
     5	kensaku3

grep時に行番号のみ表示する方法

下記のように、"|"でawkとつないて、":"で区切った1列目を表示することで、行番号のみ表示できます。

 $ grep -n "kensaku" in.txt | awk -F ':' '{print $1}'
 

下記が実行結果になります。
 $ grep -n "kensaku" in.txt | awk -F ':' '{print $1}'
1
2
3
5

スポンサーリンク