macOS: 「Grep」を使って一致する行を検索する

macOS: 「Grep」を使って一致する行を検索する

2分で読めます
| ヒント

ターミナルアプリ

以前にも何度か触れたかもしれませんが、私は組み込みのターミナルユーティリティを愛用しています。数年前は、例えば権限の問題のトラブルシューティングによく役立ちました。TMOのJeff Butts氏が指摘しているように特定のコマンドの使い方を知っていれば、裏で多くの変更を加えることができます。あるいは、インターネットからコピー&ペーストするだけでも、変更を加えることができます。ターミナルは、ユーザーが何をしているかを気にしません。だからこそ、入力する際に​​は常に注意を払うことが重要です!皆さん、今日のPSAはこれでおしまいです。

とにかく、使い方が簡単(少なくとも基本的なレベルでは)で便利なコマンドがgrepです。ターミナルのマニュアルページには次のように説明されています。

Grep に関する macOS のマニュアルページ

もっと簡単に言うと、grepを使えばテキストファイルから検索語を含む行を抽出できるということです。仕組みは以下のとおりです。例えば、このテキストファイルに何百行ものデータが入っていて、それを精査する必要があるとします。

grep検索の準備ができたテキストファイル
ああ、私はランダムな言葉を思いつくのが本当に下手なんだ。

「test」を含む行をすべて取り出し、それ以外の行から分離したいだけなら、grepを使えば簡単です。まずはターミナルを開きます(もちろん、アプリケーション > ユーティリティフォルダにあります)。起動プロンプト(ドル記号で終わる)が表示されたら、次のように入力します。

macOSターミナルでGrepのコマンドを実行する

grepコマンドに続けて検索語「test」を入力しました。あとはターミナルにどのファイルで実行するかを伝えるだけです。簡単な方法は、検索語の後にスペースを入れて、検索したいファイルをターミナルウィンドウにドラッグ&ドロップすることです。以下のようになります。

macOSのターミナルにファイルをドラッグして、そのパスをgrepコマンドに追加する

一度それを実行すると、プログラムがファイルへのパスを入力します。簡単です。

macOS で grep コマンドを完了するためにターミナル ウィンドウにドラッグした後のターミナルでのファイルへのパス

その後、キーボードの Return キーを押すと、ターミナル ウィンドウに検索に一致する行が表示されます。すばらしいですね。

macOSターミナルgrepコマンドからの出力検索

grepping(おそらく私が今作った言葉だと思いますが)でここまで到達したら、ターミナルから結果データをコピー&ペーストできます。あるいは、もっと凝った使い方をしたい場合は、コマンドに直角括弧(「>」)を追加することで、情報を新しいファイルに「パイプ」出力することもできます。例えば、次のようになります。

macOSターミナルコマンドでgrep検索結果をデスクトップ上の新しいファイルに送信する

ここで何をしているのかを本当に理解するには、ファイルパスの使い方について少し知っておく必要がありますが、平易に言えば、上記のコマンドは「メリッサのデスクトップにある「Grep.txt」ドキュメント内で「test」に一致する行を検索し、その結果を同じくメリッサのデスクトップにある「testfile.txt」というファイルに保存する」という意味です。ただし、ターミナルで既存のファイルを指定しないように注意してください。デスクトップに既に「testfile.txt」ファイルがある場合、このコマンドはそれを上書きします。

最後にもう1つ注意点があります。検索語に特殊文字(例えばスペースなど)が含まれている場合、ターミナルが正しく解釈するには、その前にバックスラッシュを付ける必要があります。例えば、「scary sewer clown」を含む行を検索したい場合は、次のように入力します。

grep 怖い\下水道\ピエロ /パス/ファイルへ

g repコマンド は実に強力で、一部の機能は正直言って私には難解です。それでも、私のような素人でも簡単な行検索なら使えます!もし私より勇気があって、もっと深く知りたいという方は、ターミナルを開いてプロンプトでman grepと入力すれば、マニュアルページをもっと読むことができます。もし何か面白い使い方があったら、ぜひ教えてください!

はい、ターミナルは楽しいものになります。はい、できます。

Knowledge Network