モジュールのレッスン (2/2)
パイプラインとフィルター (grep と |)
Linux コマンド ラインの最も強力な機能の 1 つは、異なるコマンドを接続して、あるコマンドの出力が次のコマンドの入力になる機能です。この手法は パイプライン を使用して実現され、通常はテキスト フィルタリング コマンド grep と組み合わせられます。
テキストのフィルタリング: grep
grep (グローバル正規表現印刷) コマンドは、1 つ以上のファイル内で特定のテキスト文字列を検索し、一致する行を出力します。
grep "string" [file_name]grep の便利なオプション
grep -i "error" server.log: 大文字と小文字を区別しない検索を実行します(大文字と小文字の違いを無視し、「エラー」、「エラー」、または「エラー」を検索します)。grep -n "connection" server.log: 一致する行とともに 行番号を表示します。grep -v "INFO" server.log: 検索を反転し、指定されたキーワードを含まない行のみを表示します。
コマンドの連鎖: パイプライン |
パイプライン オペレーターは、垂直バー | で表されます。左側のコマンドの標準出力を右側のコマンドの標準入力に直接送信します。
[command1] | [command2]たとえば、ログ ファイルが大きく、ファイル全体を印刷せずに特定の単語を検索したい場合は、cat と grep を組み合わせることができます。
cat logs/server.log | grep ERRORこれは、cat を使用して server.log ファイル全体を読み取りますが、それを画面に出力する代わりに、ストリームを grep にパイプし、「ERROR」という単語を含む行のみをフィルターして表示します。
使用例とよくあるエラー
大文字のみが含まれるファイル (例: 「POST」) で小文字の単語 (例: 「post」) を検索した場合、grep は何も返しません。
grep "post" logs/access.log
# Output: (no results, search is case-sensitive by default)大文字と小文字に関係なく行を検索するには、-i フラグを使用します。
grep -i "post" logs/access.log
# Output:
# 127.0.0.1 - - [22/May/2026:10:10:00 +0000] "POST /login HTTP/1.1" 401 234指定されたファイルが存在しない場合、grep はエラーを返します。
grep "ERROR" nonexistent_file.log
# Output:
# grep: nonexistent_file.log: No such file or directory自分で試してみてください
演習 1: ログ ファイル内のエラーを検索する
ファイル「logs/server.log」をフィルタリングして、単語「ERROR」(大文字と小文字を区別)を含む行のみを抽出して表示します。
ヒントを表示
grep コマンドの後に、検索する単語とファイル パスを指定して使用します。
3 回の試行後に解決策が利用可能になります
演習 2: パイプラインとフィルター
cat コマンドを使用してファイル「logs/server.log」を読み取り、その出力を grep コマンドにパイプ (|) して、「WARNING」という単語を含む行のみをフィルタリングして出力します。
ヒントを表示
cat logs/server.log をパイプ '|' を使用して grep WARNING に接続します。キャラクター。
3 回の試行後に解決策が利用可能になります
演習 3: 大文字と小文字を区別しない検索
適切な grep フラグを使用して、「logs/access.log」ファイル内で「post」という単語 (大文字または小文字) を含むすべての行を検索します。
ヒントを表示
大文字と小文字の区別を無視するには、-i オプションを指定して grep を使用します。
3 回の試行後に解決策が利用可能になります