1. ホーム
  2. linux

[解決済み] [Solved] grepの出力で行末に行番号を表示し、ヒット数も表示するには?

2022-04-18 19:09:05

質問

grepを使って、ファイル内の文字列をマッチングしています。以下はファイルの例です。

example one,
example two null,
example three,
example four null,

grep -i null myfile.txt リターン

example two null,
example four null,

一致した行を行番号とともに返すにはどうしたらよいですか。

  example two null, - Line number : 2
  example four null, - Line number : 4
  Total null count : 2

c がマッチした行の合計を返すことは知っていますが、それをどのようにフォーマットして total null count を前につけて、行番号を追加する方法がわかりません。

どうすればいいのでしょうか?

解決方法は?

-n は行番号を返します。

-i は大文字小文字を無視します。大文字小文字を区別する必要がない場合のみ使用されます。

$ grep -in null myfile.txt

2:example two null,
4:example four null,

と組み合わせる。 awk を使うと、マッチの後に行番号を表示します。

$ grep -in null myfile.txt | awk -F: '{print $2" - Line number : "$1}'

example two null, - Line number : 2
example four null, - Line number : 4

コマンド置換を使用して、ヌル数の合計を出力します。

$ echo "Total null count :" $(grep -ic null myfile.txt)

Total null count : 2