パイプとgrep

2025年09月25日

macOSのターミナルで利用できる「grep」コマンドは、主にテキストファイルの中から特定の文字列を探す目的で使われます。ファイルを直接開くことなく必要な情報だけを素早く抜き出せるのが大きな特徴です。grepは単体でも便利ですが、「パイプ(|)」と組み合わせることで、他のコマンドの出力結果をさらに絞り込む使い方ができ、とても役に立ちます。

パイプは複数のコマンドを直線的につなぎ、前のコマンドの出力をそのまま次のコマンドの入力として渡す仕組みです。この仕組みは「コマンドを組み合わせて使える」ので、パイプの概念を押さえておくことはとても大切です。

例えば、「cat」コマンドはファイルの中身を画面に表示するものです。複数のファイルをまとめて表示したり、1つのファイルの全文をさらっと閲覧したいときなどに使います。あるファイルの内容から、特定のキーワードを含む行だけを抜き出したい場合、「cat ファイル名 | grep キーワード」とすることで、まずcatで全文を表示し、その出力からgrepへと流して(パイプして)、キーワードが出現する行だけに絞り込むことができます。

具体的には以下のようなコマンドになります。

cat sample.txt | grep Apple

この場合、sample.txtの中身全てがcatによって出力され、その文のうち「Apple」が含まれている行だけがgrepによって抽出されて画面に表示されます。この仕組みは複数ファイルでも有効ですし、どの部分に目的の文字列があるかわからない大きなファイルやリストでも簡単に検索作業を行えます。

同じように、「ls」コマンドもよく使います。lsは現在のディレクトリ(フォルダ)の中のファイルやサブディレクトリ一覧を表示してくれるコマンドです。たとえば、ファイルが多数ある中から「.jpg」だけを抽出したいときは、下記のようなパイプ操作が有効です。

ls | grep .jpg

このコマンドでは、まずlsがディレクトリ内の全ファイル名を出力し、それらの中から「.jpg」を含むファイル名だけをgrepで取り出してくれます。つまり、ファイルやディレクトリが膨大な場合でも、grepを使うことで必要な部分的情報だけをすばやく見つけることができ、ファイル管理がとても楽になります。

ホームディレクトリで

ls | grep Documents

とすれば、「Documents」という名前が含まれるディレクトリやファイル名だけを一覧できます。

また、

ls | grep .pdf

とすれば、「.pdf」で終わるファイルのみリストアップできるので、書類管理や整理にも役にたちます。

grepにはパイプのほかにも便利なオプションが多数あります。たとえば、「-i」を付けると大文字と小文字を区別せずに検索でき、「-n」を付けると何行目かを表示してくれるオプションがあります。

さらに、grepはテキストファイルだけでなく、ターミナルに表示されている「標準入力」も受け付けます。つまり手元のデータをその場で検索したい、ブラウズしたファイル一覧だけから抜き出したいというときにも「パイプ+grep」で簡単に目的の情報を見つけられます。

パイプはファイル管理やデータ処理だけでなく、システム操作の基本としても欠かせないので、ぜひ使って慣れていってください。


Share
無料でホームページを作成しよう! このサイトはWebnodeで作成されました。 あなたも無料で自分で作成してみませんか? さあ、はじめよう