Open2

【Linux/CLI】grep操作のチートシート📝

まさぴょん🐱まさぴょん🐱

再帰的に任意文字列の検索をする Ver. 特定拡張子を指定📝

grep -r "任意文字列" --include="*.tsx" .

# 複数のファイル拡張子を指定する場合
grep -r "任意文字列" --include="*.tsx" --include="*.ts" .

解説📝

grep -r "任意文字列" --include="*.tsx" --include="*.ts" .
このコマンドは、以下の意味を持っています。

  • grep
    テキスト内から指定した文字列パターンを探し、その行を出力するコマンドです。

  • -r
    「recursive」の略で、現在のディレクトリおよびそのサブディレクトリを再帰的に検索対象にします。

  • "任意文字列"
    検索したい文字列パターンです。ここでは「任意文字列」という具体的な文字列が含まれる行を探します。

  • --include=".tsx" --include=".ts"
    検索対象のファイルを限定するオプションです。ここでは拡張子が「.tsx」または「.ts」のファイルだけが検索対象となります。

  • .
    検索を開始するディレクトリを示しており、ここではカレントディレクトリを意味します。

まとめ

このコマンドは現在のディレクトリとそのサブディレクトリ内にある全ての「.tsx」および「.ts」ファイルから、「任意文字列」という文字列を含む行を探して出力するためのものです。

まさぴょん🐱まさぴょん🐱

grepコマンドのチートシート📝

grepコマンドのチートシートを作成します。grepはテキスト検索に役立つUnix系コマンドで、
様々なオプションを活用することで柔軟な検索が可能です。
以下に、よく使うオプションや使用例をまとめます。

grep チートシート

基本構文

grep [オプション] "検索パターン" ファイル名

よく使うオプション

オプション 説明
-i 大文字・小文字を区別せず検索
-r ディレクトリ内を再帰的に検索
-n マッチした行番号を表示
-l マッチしたファイル名のみ表示
-w 単語単位でマッチ(部分一致を除外)
-v マッチしない行を表示(逆検索)
-c マッチした行数をカウント
-A n マッチした行の後ろn行を表示
-B n マッチした行の前n行を表示
-C n マッチした行の前後n行を表示
--color マッチした部分を色付け

正規表現の基本

パターン 説明
. 任意の1文字
* 直前の文字の0回以上の繰り返し
^ 行の先頭
$ 行の末尾
[abc] a, b, cのいずれか1文字
[^abc] a, b, c以外 の1文字
\d 数字([0-9]と同じ)※一部環境では使用不可
\s 空白文字

使用例

  1. ファイル内で文字列を検索

    grep "error" log.txt
    

    log.txt内で"error"を含む行を表示。

  2. 大文字・小文字を無視して検索

    grep -i "error" log.txt
    

    → "Error", "ERROR"などもマッチ。

  3. ディレクトリ内を再帰検索

    grep -r "function" /path/to/dir
    

    → 指定ディレクトリ内の全ファイルで"function"を検索。

  4. 行番号付きで表示

    grep -n "TODO" code.c
    

    → "TODO"が含まれる行とその行番号を表示。

  5. 単語単位で検索

    grep -w "test" file.txt
    

    → "testing"は除外し、"test"のみマッチ。

  6. マッチしない行を表示

    grep -v "debug" log.txt
    

    → "debug"を含まない行を表示。

  7. 前後3行を含めて表示

    grep -C 3 "error" log.txt
    

    → "error"を含む行とその前後3行を表示。

  8. 正規表現で検索

    grep "^[0-9]" data.txt
    

    → 数字で始まる行を検索。

  9. 複数条件を組み合わせ

    grep -r -i "error.*failed" /var/log
    

    → "error"と"failed"が含まれる行を再帰的かつ大文字小文字無視で検索。

  10. ファイル名のみ表示

    grep -l "warning" *.txt
    

    → "warning"を含むファイル名のみ表示。


Tips

  • パイプと組み合わせる
    他のコマンドの出力をgrepでフィルタリング可能。

    ps aux | grep "python"
    

    → 実行中のプロセスから"python"を含むものを表示。

  • 複数パターンの検索
    -eを使って複数の検索パターンを指定。

    grep -e "error" -e "fail" log.txt
    
  • エスケープ
    特殊文字(例: .*)を検索する場合は\でエスケープ。

    grep "\." file.txt
    

    → ピリオド.を検索。