awk: 強力なテキスト処理ツールの基本と使い方

概要

awkは、1970年代にベル研究所で開発されたプログラミング言語です。テキスト処理に特化した強力なツールであり、UNIXやLinuxユーザーに広く利用されています。

awkの主な特徴は、テキストファイルの行を処理する際に、パターンマッチングとアクションの組み合わせを使用して柔軟な処理を行うことができる点です。awkのスクリプトは、行ごとにパターンと対応するアクションを指定する形式で書かれます。

awkの基本的な構造は次のようになります:

パターン { アクション }

ここで、パターンは処理を実行する条件を指定し、アクションは条件が満たされた際に実行される処理を指定します。awkのプログラムは、このようなパターンとアクションの組み合わせで構成されます。

awkの主な用途の1つは、テキストファイルからデータを抽出して処理することです。たとえば、ログファイルから特定のエラーメッセージを抽出したり、CSV形式のファイルから特定の列を取り出したりすることができます。awkは、その柔軟な構文と豊富な組み込み関数を使用して、さまざまなテキスト処理タスクを効率的に実行することができます。

使い方

awkの基本的な使い方を紹介しましょう。ここでは次のCSVファイルを使うものとします。

% cat test.csv                  
動物,平均の大きさ,鳴き声
ライオン,2.5m,ガオー
ゾウ,3.5m,パオー
ヒョウ,1.2m,ヒューヒュー
クジャク,1.1m,キューキュー
クマ,1.8m,グゥーグゥー

例えば、次のawkスクリプトでは、「ク」を含む行をtest.csvから抽出しています:

% awk '/ク/ { print; }' test.csv
クジャク,1.1m,キューキュー
クマ,1.8m,グゥーグゥー

ここで、/パターン/ は正規表現で指定されたパターンを示し、「ク」にマッチする行を検索・表示しています。

また、awkは列指向の処理もサポートしています。CSV形式のファイルから特定の列を抽出するには、次のようなawkスクリプトを使用します:

% awk -F, '/ク/ { print $2; }' test.csv
1.1m
1.8m

ここでは区切り文字として , を指定し、「ク」を含む行の2列目の値を表示しています。

まとめ

awkは、データ処理のための強力なツールであり、柔軟性と効率性を兼ね備えています。UNIXやLinux環境でのテキスト処理において、強力な存在です。awkの基本的な構文と使い方を理解し、テキスト処理のタスクを効率的に実行するために活用しましょう。

この記事を書いた人 Wrote this article

ぜんたろう

ぜんたろう

FP2級/宅建士。お金の話が好物。インデックス投資がメインなのに個別株・ETFにも手を出す。ここ数年で投資スタイルが確立した筈だがジャンク株に心を奪われがち。 --- 永遠の見習いプログラマ (SIer複数→スタートアップ複数→大きめベンチャー)

TOP