Awk(プログラミング言語):テキスト処理とデータ抽出
Awkは、テキストや表形式データの処理・抽出に特化したコンパクトな言語です。Unix系環境でのスクリプト作成、レポート生成、迅速なデータ変換に広く用いられます。
概要
Awkは、テキストファイルやストリームから情報を処理・抽出するために設計された、小規模な特定分野向けプログラミング言語です。パターンとアクションのモデルで動作し、入力レコードがパターンに一致すると、対応するアクションが実行されます。簡潔な構文と組み込みのテキスト処理機能により、Awkはデータのフィルタリングやレポート作成を行うコマンドラインのパイプラインや短いスクリプトで頻繁に使用されます。より詳しい参照先については、Awkの資料を参照してください。
画像ギャラリー
1 画像主な特徴
Awkは入力を、フィールドに分割されたレコード(通常は行)として扱います。代表的な組み込み要素には、フィールドを表す$1、$2、フィールド数を表すNF、レコード番号を表すNRがあります。この言語は、正規表現による照合、連想配列(ハッシュ)、算術演算と文字列操作を統合しており、多くの実装ではユーザー定義関数も利用できます。既定の動作により単純な変換を容易に行えます。たとえば、awk '{print $1}'は各行の最初のフィールドを出力します。
歴史と開発
Awkは初期のUnixの伝統におけるテキスト処理作業のためのツールとして作られ、名称は原著者たちの名前に由来します。時代とともに複数の実装や方言へと発展しました。GNU Awk(gawk)は元の仕様を超える拡張を加えている一方、速度や移植性を重視する実装もあります。
一般的な用途と例
Awkは、区切り付きファイルからの列の抽出、簡単なレポートの生成、ログの変換に優れています。典型的な用途には、カスタム区切り文字(たとえば-F)によるフィールド分割、列の合計の計算、パターンに一致するレコードの選択があります。迅速なデータ抽出や整形を行うため、シェルのパイプライン内で他のUnixツールと組み合わせて使われることも多くあります。チュートリアルやスクリプト例を探す利用者は、データ抽出の資料を参照できます。
派生版、ツール、および注目すべき点
- 広く使われる実装には、original Awk、nawk(new Awk)、gawk(GNU Awk)、mawkがあります。
- Gawkには、追加関数、ネットワーク機能、国際化の改善などの拡張があります。
- Awkはワンライナーや小規模スクリプトにおける読みやすさと簡潔さが評価されていますが、より大規模なプログラムは保守性のために汎用言語へ移植されることがあります。
関連項目
著者
AlegsaOnline.com Awk(プログラミング言語):テキスト処理とデータ抽出 Leandro Alegsa
URL: https://ja.alegsaonline.com/art/7821