AWK 概要
AWK は、A. V. Aho、P. J. Weinberger、B. W. Kernighan の 3 人の開発者の名前の頭文字を取ったもので、Unix 系システムで広く使用されているデータ操作言語です。ファイルまたは標準入力から 1 行ずつ読み込み、指定されたパターンとアクションに基づいてデータを処理します。
AWK の動作方法
AWK は、`pattern { action }` という基本構造に従います。各行を読み込むたびに、`pattern` が一致すると `action` を実行します。パターンがない場合はすべての行に対してアクションを実行し、アクションがない場合は一致する行をそのまま出力します。
AWK の特徴
- 行単位処理: 入力ファイルを 1 行(レコード)ずつ読み込んで処理します。
- フィールド単位アクセス: 各行を空白(デフォルト区切り文字)で区切られたフィールド($1、$2、...)に分割してアクセスします。
- パターンマッチング: 特定のパターンと一致する行にのみ操作を実行できます。
- プログラミング機能: 変数、条件文、繰り返し文、関数など、基本的なプログラミング機能を提供します。
- レポート生成: 複雑な形式のテキストレポートを簡単に生成できます。
主要な AWK コマンドとオプション
AWK の様々なオプション、組み込み変数、特殊パターンを使用して、テキストデータを精緻に処理しましょう。
1. 基本的な使用法と入出力オプション
2. 組み込み変数
3. 特殊パターン
生成されたコマンド:
コマンドを組み合わせてみてください。
説明:
`awk` コマンドを実行します。
これらのオプションを組み合わせて、AIと一緒に仮想的にコマンドを実行してみてください。
使用例
AWK コマンドの様々な活用例を通じて、テキストデータ処理の魔法を体験しましょう。
ファイルから2列目のみ出力
awk '{print $2}' data.txt
`data.txt` ファイルから各行の2番目のフィールド(列)のみを抽出して出力します。(デフォルト区切り文字:空白)
CSV ファイルから特定の列を出力
awk -F',' '{print "名前: " $1 ", 点数: " $3}' scores.csv
カンマ (`,`) で区切られた `scores.csv` ファイルから、名前(最初のフィールド)と点数(3番目のフィールド)を出力します。
特定のパターンを含む行のみ出力
awk '/ERROR/{print}' log.txt
`log.txt` ファイルから 'ERROR' 文字列を含むすべての行を出力します。
行番号とともに出力
awk '{print NR ": " $0}' names.txt
`names.txt` ファイルの各行の前に、行番号を付けて出力します。
最初のフィールドが 'apple' の行で2番目のフィールド値を変更
awk '$1 == "apple" {$2 = "fruit"; print}' inventory.txt
ファイルから最初のフィールドが 'apple' の行を見つけ、2番目のフィールドを 'fruit' に変更してから全行を出力します。
ファイル処理前後のメッセージ出力と合計計算
awk 'BEGIN {total = 0; print "計算開始!"} {total += $1} END {print "合計: " total}' numbers.txt
`numbers.txt` ファイルの数字をすべて合計し、開始時と終了時にメッセージを出力します。(各行に1つの数字のみがあると仮定)