練習問題:テキスト整形(sed・awk・sort・uniq)10問

スポンサーリンク

置換・整形・列処理・集計・重複処理など、実務で最も出番が多い領域です。
sed / awk / sort / uniq を組み合わせて、日常的なログやCSV処理の基礎を鍛えます。

想定レベル:Lv2〜4/目安:各5〜8分

1) ファイル内の文字列を一括置換する

問題config.txt 内の文字列 http:// をすべて https:// に置換してください(上書き保存)。
ヒント-i オプションで直接書き換え。

解答例
sed -i "s|http://|https://|g" config.txt

2) 先頭に行番号を付けて表示する

問題data.txt を読み込み、各行の先頭に行番号を付けて表示してください。
ヒントawkNR

解答例
awk "{print NR, $0}" data.txt

3) CSV の 2列目だけを取り出す

問題:カンマ区切りの users.csv から 2列目(ユーザー名)だけを取り出して表示してください。
ヒント-F, で区切り文字指定。

解答例
awk -F, "{print $2}" users.csv

4) ログから日付(1列目)を抽出してユニークに並べる

問題:スペース区切りの access.log から 1列目(日付部分) を取り出し、重複を除いて表示してください。
ヒントsort -u

解答例
awk "{print $1}" access.log | sort -u

5) ログ内の 404 エラー件数をカウントする

問題access.log に含まれるステータスコード 404 の出現回数を数えてください。
ヒント:フィルタ → 件数。

解答例
awk "$9 == 404 {count++} END {print count}" access.log

6) ファイルの中から空行を削除する

問題notes.txt の空行をすべて削除して出力してください。
ヒント^$ は空行。

解答例
sed "/^$/d" notes.txt

7) ファイルの中の重複行を削除する(順序は問わない)

問題list.txt の重複行を取り除いて出力してください(順序はソート順でよい)。
ヒントsort -u

解答例
sort -u list.txt

8) ソート済みデータから重複行と件数をまとめる

問題words.txt をソートした上で、各単語の出現回数とともに表示してください。
ヒントuniq -c

解答例
sort words.txt | uniq -c

9) エラーログから “ERROR” を含む行だけを抽出し、日時順に並べる

問題app.log のうち “ERROR” を含む行を抽出し、1列目の日時で昇順ソートしてください。
ヒントgrepsort の組み合わせ。

解答例
grep "ERROR" app.log | sort -k1,1

10) CSV の 3列目を合計する

問題:カンマ区切り sales.csv3列目(売上数値) を合計して表示してください。
ヒントawk の変数加算。

解答例
awk -F, "{sum+=$3} END {print sum}" sales.csv

学習のヒント

  • sed → 文字列置換・削除に強い
  • awk → 列操作・集計に強い
  • sort → 並べ替え・-kでキー指定
  • uniq → 重複処理(必ずソート後に使うと安定)

このカテゴリは実務で最も使用頻度が高く、ログ解析・CSV処理・テキスト整形の基礎になります。

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

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

スポンサーリンク
Bash玄

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

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

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

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

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

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

Bash玄をフォローする