Menu
CoddyTech

grep とのパイプ

CoddyのTerminalジャーニー「基礎」セクションの一部。レッスン 46/82。

grepコマンドは、パイプと組み合わせると特に強力になります。ファイル内を検索する代わりに、任意のコマンドの出力を絞り込み、必要なものを正確に見つけることができます。

ディレクトリ一覧の中から特定のファイルを見つけたいとします。

ls -l | grep "report"

これにより、すべてのファイルが詳細に一覧表示され、その後、「report」を含む行だけが表示されるように絞り込まれます。すべてを手作業で確認しなくても、目的に合った結果が得られます。

grep へのパイプ処理は、テキストを出力するあらゆるコマンドで機能します。特定のプログラムに関連する実行中のプロセスを見つけるには、次のようにします。

ps aux | grep "python"

これまでに学んだ他のコマンドとgrepを組み合わせることもできます。特定の単語を含む行数を数えるには、次のようにします。

cat logfile.txt | grep "error" | wc -l

これはファイルを読み込み、「error」を含む行を絞り込んでから、その数を数えます。先ほど学んだ grep のフラグはパイプでも同じように使えます。大文字と小文字を区別せずに検索するには -i を、該当する行を除外するには -v を使います。

challenge icon

チャレンジ

簡単

access.log ファイルには、Webサーバーのアクセス記録が含まれています。パイプを使って絞り込み、500 エラーステータスコードになったリクエストの数を数えてください。

次の処理を行う単一のコマンドを実行してください。

  • cat を使って access.log を読み込む
  • grep にパイプで渡し、500 を含む行を絞り込む
  • wc -l にパイプで渡し、一致した行を数える

ヒント: | 記号を使って、3つのコマンドを連結します。grep コマンドで出力を絞り込み、wc -l で残った行を数えます。

自分で試してみよう

ターミナル
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: Terminalプレイグラウンド