ex1-lab

Linux, CentOS, Mac OS X, Windows, 仮想化, Apache等のLinux中心に気になることをメモがわりに・・・

grepで検索文字の行番号を取得

    この記事は約2分で読むことができます。

概要

grepコマンドを利用して、検索したキーワードがある行の行番号を取得したいケースがありました。

私の場合はアプリのログでエラーが上がっていると、そこからちょこちょこと何かしらの処理をするシェルスクリプトを作る機会があったので、その際にgrepで検索したキーワードがある行の行番号を取得する必要がありました

コマンド

検索文字列の行番号を表示するのは、以下のコマンドです

コマンド:grep "検索文字列" -n 検索ファイル名

いかのようなログの場合は、上記のコマンドを実行すると以下のように出力されます

 

行番号だけのいいのに、他の文字も一緒に出力されますので、行番号だけ出力するようにします。
使用するコマンドは、色々とあると思いますが、sedコマンドの場合と、cutコマンドの方法を紹介します

grep + sed コマンド

grepコマンドで行番号を出力して絞り込み、sedコマンドで「:」以降の文字列を削除して出力します

コマンド:grep "検索文字列" -n 検索ファイル名 | sed -e 's/:.//g'

grep + sed コマンド

grepコマンドで行番号を出力して絞り込み、cutコマンドで「:」区切りとして行番号のみ出力します

コマンド:grep "検索文字列" -n 検索ファイル名 | cut -d ":" -f 1



 - Linux , ,