Menu
Coddy logo textTech

grep とのパイプ

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

grep コマンドは、パイプと組み合わせると特に強力になります。ファイル内を検索する代わりに、任意のコマンドの出力をフィルタリングして、必要なものだけを正確に見つけられます。

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

ls -l | grep "report"

これにより、すべてのfileが詳細に一覧表示され、その後「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プレイグラウンド