概要
fgrepは、指定されたファイルまたは標準入力から固定文字列を検索し、該当する行を出力します。正規表現のメタ文字を通常の文字として扱うため、特殊文字が含まれる文字列を正確に検索する場合に便利です。
主な特徴
- 正規表現をサポートしない(固定文字列のみ検索)
- grep -Fと機能的に同一
- 特殊文字のエスケープが不要
- リテラル文字列検索時のパフォーマンス優位
主なオプション
fgrepはgrepと多くのオプションを共有しますが、正規表現関連のオプションは適用されません。
検索条件
出力形式
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`fgrep` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
fgrepを活用した様々な検索例です。
基本文字列検索
fgrep "error message" log.txt
log.txtファイルから「error message」という文字列を検索します。
大文字小文字を区別せずに検索
fgrep -i "warning" report.log
report.logファイルから「warning」という文字列を大文字小文字を区別せずに検索します。
一致しない行を出力
fgrep -v "success" access.log
access.logファイルから「success」という文字列が含まれていない行を出力します。
サブディレクトリを再帰的に検索し、ファイル名のみ出力
fgrep -rl "TODO" .
現在のディレクトリとサブディレクトリから「TODO」という文字列が含まれるファイルのファイル名を出力します。
単語単位で検索
fgrep -w "fail" status.txt
status.txtファイルから「fail」という単語全体が含まれる行を検索します。
行番号と共に検索
fgrep -n "config" setup.ini
setup.iniファイルから「config」という文字列を検索し、一致した行の番号も共に出力します。
ヒントと注意点
fgrepは特定の状況でgrepよりも効率的になることがあります。
fgrep活用ヒント
- パフォーマンス: 正規表現の解析オーバーヘッドがないため、リテラル文字列検索ではgrep -Fと共に最も高速です。
- 特殊文字: 正規表現のメタ文字(例: ., *, ?, ^, $, [, ])を通常の文字として扱うため、エスケープせずにそのまま検索できます。
- grep -F: fgrepは機能的にgrep -Fと同一です。多くのシステムでは、fgrepはgrep -Fのシンボリックリンクです。したがって、どちらのコマンドを使用しても問題ありません。