awkメモ書き

2015年12月22日

AWK テクノロジー プログラミング

AWK言語は、LinuxサーバーのIOをかなり高速に扱えるインタプリタ言語なので、色々な言語から使えるライブラリとして活用できます。 WEBサービスを公開している運営会社でサービス不具合が無いという会社はほとんどないと思いますが、サービス側のプログラムトラブルもそうですが、サーバートラブルというモノも頭がイタイですが存在すると思います。

AWKの利便性

僕の知っている限り、サーバートラブルは機器故障ではなく、圧倒的にデータベーストラブルが多いと認識してます。 一回走り始めるとMySQLなどのSQLサーバーは止められない、ストレージ的な制約を拡張しずらい、プログラムを改修しないとバランシング構成に変更できない。 など、改修コストもトラブルというストレスも計り知れません。 そんな時にこのAWK言語と出会い、SQLを使わずに高速データ処理を行える手段として活用しています。 僕はSQLは嫌いではないですが、拡張性の低いSQLは高アクセスサービスには向かないと思っているので、こういった手段を知っているかどうかでサービスの方向性にフタがされるかどうかが決まります。 是非、手始めに簡単なAWKを覚えてみてはどうでしょうか? 今回はメモ書き程度ですが、次回にでも深いテンプレートなどを紹介したいと思います。

参考ページ

Wikipedia
ドットインストール

文字列操作(分割)

split(%1,%2,%3); %1:文字列 %2:split文字 %3:配列格納変数

文字列を部分的に抽出

substr(%1,%2,%3); %1:文字列 %2:抽出開始番号(1スタート) %3:抽出する文字数(nullの場合は、文字列の最後まで)

外部ファイルにプログラムを記述

$ awk -f file.awk %load-file% # file.awk BEGIN{ # 初回処理 FS:","# レコードのsplit文字列 } { # メインプログラム } END{ # 終了処理 }

コマンドラインからメインプログラムに値を受け渡す方法

# hoge変数に123を代入してからfile.awkを実行する。 $ awk -v hoge=123 -f file.awk %load-file%

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。