練習問題:パイプ&リダイレクト(Lv2〜3/6問)

コマンド連携・標準入出力・一時ファイル不要の合成テクニックを鍛えます。
想定時間:各3〜6分

1) エラーログから ERROR を含む行数を数える

問題app.log から ERROR を含む行を抽出し、件数のみ表示してください。
ヒント:抽出 → 行数。

解答例

grep “ERROR” app.log | wc -l

2) アクセスログのURLを頻度順に上位5件

問題access.log7列目(URL) を取り出し、出現回数の多い順に 上位5件 を表示してください。
ヒント:列抽出 → ソート → uniq -c → 逆順ソート → head。

解答例

awk ‘{print $7}’ access.log | sort | uniq -c | sort -nr | head -n 5

3) 標準出力はファイル保存、標準エラーは捨てる

問題generate.sh を実行し、標準出力out.txt に保存しつつ、標準エラーは捨ててください。
ヒント>2> の使い分け。/dev/null

解答例

bash generate.sh > out.txt 2>/dev/null

4) 実行結果を画面表示しつつファイルにも保存する

問題ls -1 *.log の結果を 画面に表示しながら、同時に list.txt にも保存してください(上書き)。
ヒントtee コマンド。

解答例

ls -1 *.log | tee list.txt

5) 404 の行だけを取り出し、先頭10行を確認

問題access.log から 404 を含む行だけを抽出し、先頭10行 だけ表示してください。
ヒント:フィルタ → head。

解答例

grep ” 404 ” access.log | head -n 10

6) 大きいファイルから重複行を除去して別ファイルへ(メモリ節約志向)

問題:巨大な big.txt から重複行を取り除き、結果を uniq.txt に保存してください(一時ファイルを作らずに済ませる)。
ヒント:ストリーム処理で並べ替え → 重複除去 → リダイレクト。

解答例

sort big.txt | uniq > uniq.txt

学習のヒント

  • |(パイプ)は「前コマンドの出力を次の標準入力へ」渡す
  • > は標準出力を上書き保存>>追記
  • 2>標準エラーの出力先を分ける(2>/dev/null で捨てる)
  • tee表示+保存を同時に行える(-a で追記)

この6問で、入出力の流れを意識した“つなぐ力”を身につけましょう。

学びを“実務”へつなぐ最短ルート

独学で積み上げた「わかった」を、仕事で使える「できる」へ。
学習ハブの内容を踏まえて、実務に直結する学習設計・添削・質問環境を整えたい人は、下記のページで具体的な進め方を確認してください。

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする