awkコマンドでテキストを処理する方法

当ページのリンクには広告が含まれています。

## はじめに

awkは行と列(フィールド)を扱うことに特化した、ミニプログラミング言語的なテキスト処理ツールです。ログから特定列を取り出す、合計や平均を計算する、条件付きで整形するといった処理が一行で実現できます。

grepが「行の抽出」、sedが「文字列の置換」を得意とするのに対し、awkは「列の抽出と計算」が得意です。

## 手順・設定方法

### ステップ1: 基本構文とフィールド指定

“`bash
echo “alice 25 engineer” | awk ‘{print $1, $3}’
awk -F: ‘{print $1}’ /etc/passwd
“`

### ステップ2: パターンと条件処理

“`bash
awk ‘/error/ {print $0}’ app.log
awk ‘$9 >= 500 {print $1, $7, $9}’ access.log
awk ‘NR >= 10 && NR <= 20' file.txt awk 'BEGIN{print "=== Report ==="} {print} END{print "Total:", NR}' file.txt ``` ### ステップ3: 集計・計算 ```bash ls -l | awk '{sum += $5} END {print "Total bytes:", sum}' awk '{sum += $NF; count++} END {print "Avg:", sum/count}' response.log awk '{count[$9]++} END {for (s in count) print s, count[s]}' access.log ``` ### ステップ4: 実践的なログ解析 ```bash awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10 awk '$9 ~ /^[45]/ {print $9, $7}' access.log | sort | uniq -c | sort -rn ps aux | awk 'NR>1 {mem[$11]+=$6} END {for (p in mem) print mem[p], p}’ | sort -rn | head
“`

## まとめ

1. **フィールド指定**: `$1`〜`$N` で列、`$NF` で最終列
2. **区切り文字**: `-F` で指定(`:` `,` `\t` など)
3. **条件処理**: `pattern {action}` の形式で行を選別
4. **集計**: 連想配列 `count[$1]++` でカウント
5. **BEGIN/END**: 処理前後にヘッダーやサマリーを出力可能

▼ 実践ガイド

【2026年】ネット証券口座の選び方とおすすめ比較 →

用語の意味がわかったら、実際の口座選びのポイントもチェックしてみてください。

※本記事に掲載している情報は、中立的な立場からの情報提供を目的としたものです。掲載している商品・サービスの購入や利用を推奨・強制するものではありません。投資には価格変動リスクが伴い、元本割れが生じる可能性があります。過去の運用実績やシュミレーション結果は、将来の運用成果を保証するものではありません。また、情報の正確性・最新性には十分配慮しておりますが、 内容の完全性や将来の結果を保証するものではありません。最終的な投資判断は、読者ご自身の判断と責任において行っていただくようお願いいたします。本記事の情報を利用したことによって生じたいかなる損害についても、当サイトでは一切の責任を負いかねますので、あらかじめご了承ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

マネジ局長は、「お金の大辞典」全体を統括する監修者です。

編集者であるマネ辞くんが収集・整理した金融・投資・税制データについて、制度の前提条件やリスク、誤解が生じやすい点がないかをチェックし、「この情報をどう受け取るべきか」という判断軸を補足します。

特定の商品やサービスをすすめる役割ではなく、読者が冷静に考えるためのブレーキ役として設計されています。

お金の判断は急がず、理解してから選ぶ。
それがマネ辞局長の基本スタンスです。

目次