MiracleJobLogo
エンジニアのエンジニアによるエンジニアのためのサイト
News 07/25 おすすめ情報に 『 【案件】Azure AD関連の認証設計/azureの基本設計 』 を追加しました。
会員登録するとキャリア診断やサイトに参加することができます。
あなたにおすすめな技術情報、資格、仕事などをお知らせします。

無料会員登録


パスワードを忘れた場合
LINEで送る
MiracleJobBanaLeft1
MiracleJobBanaLeft2


grepの正規表現を用いた検索
profile-img
投稿者: Nakamaさん
投稿日:2021/08/06 18:39
更新日:
like-img
分類
技術
テクノロジー
その他
キャリア
運用・保守
投稿内容
Linux環境上でログ検索に便利なgrepを用いた検索方法について、ご紹介していきます。

grepコマンドは、指定したファイル名の中から検索パターンと一致する行を出力するコマンドです。

【基本構文】
$) grep [オプション] <検索パターン> <ファイル名>

以下のオプションをつけるとより詳細な検索が可能となります。
 -n…マッチした行番号の出力
 -i…大文字、小文字を区別しない
 -v…パターンマッチした行以外を出力する
 -w…パターンを単語としてマッチ
   -E…正規表現の拡張

[grep A B.txt]と入力すると、文字列AをBテキストファイルから検索することができます。しかし、ログファイルなどを検索する際には、メッセージ内容やタイムスタンプが完全一致せず、検索できない場合があります。検索したい文字列の一部分が不明場合は、正規表現を利用して検索することが可能となります。

grepで利用可能な主な正規表現
 . …任意の1文字
 * …直前の1文字(1パターン)の0回以上の繰り返し
 ^ …行の先頭
 $ …行の末尾
 [a-z]…a-zまでの1文字
 [1-9]…1-9までの1文字
 ? …直前の文字が0または1回の繰り返し
 {m,n}…直前の文字がm回以上(n回以下)の繰り返し
 (AAA)…()内を単語として検索
 \\ …正規表現を文字列として扱う。(エスケープ)

「A.logファイル」から「…error」のようなエラー出力を検索したい場合

 $) grep -E '.*error' A.log

「A.logファイル」から「…20210806 msg…」のようなタイムスタンプ付きのログを8/1~8/6まで出力したい場合


 $) grep -E '080[1-6](.*)msg' A.log

grepコマンドを用いたログ検索は、実務で多く使われることが多いかと思います。正規表現が使いこなせるようになれば、より高度なログ分析が行えるようになるので、ぜひ正規表現について学んでみてはいかがでしょうか。


コメント


MiracleJobBanaRight1
MiracleJobBanaRight2
MiracleJobBanaRight3