MENU

grepコマンド使い方いろいろ~基本的な使い方から応用まで~

grepコマンドの使い方メモです。

目次

基本的な使い方

単純な文字列の検索

grep 'パターン' ファイル名

例:ファイル example.txt 内の「hello」を検索する場合

grep 'hello' example.txt

複数のファイルを検索

grep 'パターン' ファイル名1 ファイル名2 ...

例:複数のファイル内で「hello」を検索する場合

grep 'hello' file1.txt file2.txt

行番号を表示

grep -n 'パターン' ファイル名

例:マッチした行の行番号も表示する

grep -n 'hello' example.txt

大文字小文字を区別しない

grep -i 'パターン' ファイル名

例:大文字小文字を無視して「hello」を検索する

grep -i 'hello' example.txt

再帰的にディレクトリを検索

grep -r 'パターン' ディレクトリ名

例:カレントディレクトリ以下の全てのファイルで「hello」を検索する

grep -r 'hello' .

マッチしない行を表示

grep -v 'パターン' ファイル名

例:「hello」を含まない行を表示する

grep -v 'hello' example.txt

マッチした行の数を表示

grep -c 'パターン' ファイル名

例:「hello」がマッチした行の数を表示する

grep -c 'hello' example.txt

全てのファイル名を表示

grep -l 'パターン' ファイル名

例:「hello」が含まれるファイル名を表示する

grep -l 'hello' *.txt

パターンの前後の行も表示

  • 前の行: -B
  • 後の行: -A
  • 前後の行: -C

例:マッチした行の前後2行も表示する

grep -C 2 'hello' example.txt

正規表現の使用

基本的な正規表現を使用

grep -E '正規表現パターン' ファイル名

例:「数字-文字」のパターンを検索する

grep -E '[0-9]-[a-zA-Z]' example.txt

応用例

ログファイルから特定の時間帯のエントリを検索

grep '2024-07-27 14' logfile.log

特定の拡張子のファイルで検索

grep 'パターン' *.txt

grep と awk の組み合わせ

特定のパターンに一致する行から特定のフィールドを抽出

例:example.txtから「hello」を含む行の2番目のフィールドを抽出する

grep 'hello' example.txt | awk '{print $2}'

grepで抽出した行の合計値を計算

例:example.txtから「value」を含む行の3番目のフィールドの合計を計算する

grep 'value' example.txt | awk '{sum += $3} END {print sum}'

grep と sort の組み合わせ

パターンに一致する行を抽出して並べ替え

例:example.txtから「hello」を含む行を抽出してアルファベット順に並べ替える

grep 'hello' example.txt | sort

数値順に並べ替え

例:example.txtから「value」を含む行を抽出して3番目のフィールドで数値順に並べ替える

grep 'value' example.txt | sort -k3,3n
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

20代の組み込みソフトウェアエンジニア
主な使用言語はC++

---------------------資格---------------------
応用情報技術者
ネットワークスペシャリスト

目次