Bash 速習チュートリアル

Bash grepコマンド

1. grepコマンドの使用方法

grepコマンドは、ファイル内から特定のテキストパターンを検索するために使用されます。
巨大なファイルや、多数のファイル群の中から特定の記述を見つけ出すための非常に強力なツールです。

1.1 基本的な使い方

ファイル内のパターンを検索するには、grep 'パターン' ファイル名 の形式で使用します。

例:

grep 'shell' file.txt
# 出力結果:
# A shell is a text-based interface that lets you talk to your computer.
# (シェルはコンピュータと対話するためのテキストベースのインターフェースです。)
# There are different types of shells. Bash (Bourne Again SHell)
# (シェルには様々な種類があります。Bash (Bourne Again SHell) など。)

2. オプション

grepコマンドには、検索動作をカスタマイズするためのオプションが用意されています。

  • -i - 大文字と小文字の区別を無視して検索する
  • -r - ディレクトリおよびそのサブディレクトリ内のすべてのファイルを検索する
  • -v - パターンに一致しない行を表示する

2.1 大文字・小文字を無視する

-iオプションを使用すると、アルファベットの大文字・小文字を区別せずに検索を実行できます。

例:大文字・小文字を無視

grep -i 'shell' file.txt
# 出力結果:
# Understanding Shells
# A shell is a text-based interface that lets you talk to your computer.
# There are different types of shells. Bash (Bourne Again SHell)

2.2 再帰検索

-rオプションを使用すると、指定したディレクトリ以下の全ファイルを対象に検索を行うことができます。

例:再帰検索

grep -r 'search_term' /home/user/my_directory
# 出力例:
# /home/user/.my_secret_file:A shell is a text-based interface...
# /home/user/.my_secret_file:There are different types of shells...
# /home/user/copy_of_my_file.txt:A shell is a text-based interface...
# /home/user/myfolder/my_file.txt:A shell is a text-based interface...

2.3 反転一致(一致しない行の抽出)

-vオプションは、指定したパターンを含まない行だけを抽出します。

例:一致しない行の抽出

grep -v 'shell' my_file.txt
# 出力結果:
# Understanding Shells

3. 正規表現を用いた検索

正規表現(Regular Expressions)を使用することで、より複雑なパターンでの検索が可能になります。
例えば、grep '^[A-Za-z]' file.txt と実行すると、アルファベットで始まる行のみを検索できます。

例:正規表現の使用

grep '^[A-Za-z]' my_file.txt
# 出力結果:
# Understanding Shells
# A shell is a text-based interface that lets you talk to your computer.
# There are different types of shells. Bash (Bourne Again SHell)
# is popular because it's powerful and easy to use.