このサイトでは度々awkというテキスト処理に有利なスクリプト言語を勧める記事を記しています。私自身がネットショップの商品データを管理する仕事を担当していたこともあり、プログラミングスキルが無くても結果が得られるプログラミング言語(awk)は、非常に魅力のあるツールに違いないと確信していたからです。
先日、ドットインストールからAWKのレッスンを追加しました。というメールが届きました。そう言えばドットインストールがまだテスト運用だった頃、ネットで知り合った人に招待してもらって使えるようになり、要望欄からawkのレッスンを希望したことがあります。その時返事を頂いたのは、「awkは確かに良い言語ですね。検討してみます。」みたいな内容だったと記憶しています。過去メールを探せば残っていると思いますが別に良いでしょう。田口さんが覚えていてくれたのか、また新たに要望が上がったのかは知りませんが、何年越しかの私の要望が取り入れられたと思って満足しておきます(w
さて、ドットインストールのレッスンについてですが、レッスンはMacユーザー向けというか、ドットインストール自体がマックユーザーなので、学習環境もMac OSを前提としています。そこでWindowsユーザーはちょっと読み替える努力を要求されます。ま、通常とは逆なので、Macユーザーが何時もどういう思いをしていたか思い知る良い機会ですね(w
OSS系の言語が多いので、今回のAWKのレッスンもCentOSというLinux環境を使用する前提で進められています。しかしそんな手間をかけなくても、私はWindows環境で容易にawkを使う方法を、過去に何度かこのサイトでご紹介しています。
「おーくの友だち」
Windowsアプリとしてインストール出来ますので、Windowsならではのマウスで操作するUIの分かりやすさを活用出来ます。もちろんスクリプト部分にはコードを記さなくてはなりませんが、awkのコードは凝ったことをしなければ非常にシンプルで、「え?これだけで良いの?」って思う位簡単に済む事が多いです。
私が思うawkが他言語と違うと感じている一番の特徴は、ループ処理をawkが自動的に行なってくれる部分です。実際私もプログラミングを学習していて一つの壁が、ループ処理だと思っています。イメージを膨らませないと(慣れないと)どうもしっくり来ない部分がループ処理です。
awkは、言語の仕様上、データファイルを一行ずつ読み込んでは処理をして、また次の行を読み込んでは処理をしての繰り返しをしてくれます。つまり、いちいちループ記述をしなくても良いのです。これが最もビギナーに易しい言語仕様だと私は思っています。
わざわざLinux環境を準備する必要も無く、Windows環境だけでawkを学習する事もできますし、もちろんWindowsパソコン上でそのまま仕事に使うことも出来ます。以前例として使った、郵政が提供する郵便番号辞書という結構大きなテキストデータの処理も数秒で処理完了ですからね。Excelに読み込んだりしたら、本当に時間がかかる(ヘタしたらフリーズする)ところが、awkという古いプログラムなのに、サクサク処理して一瞬で終わらせてくれます。
awkという言語が、ソースとなるデータファイルを一行ずつ読み込んで処理するという仕様になっている証拠でしょう。非常に古い言語だと言われていますが、コンパクトな言語ならではの軽快さは特筆モノです。昨今のPCなら繰り返し処理を非常に高速に処理出来て当然なのです。
是非過去記事も参考にしていただき、お仕事を楽に処理していただきたいです。ネットショップ系の仕事には最適だと経験上思っています。
私も以前働いていたネットショップ運営会社で広めましたし、その職場を辞めた後でもコレawkで処理できますかね?って相談が来たりします。
ドットインストールのawkレッスンも是非ご覧になって下さい。awkをかなり使いこなしている方(プログラマー)が観ても分かりやすい説明だと言う評価なのでお勧めですよ。
私自身awkはプログラミングスキルが無くても、欲しい結果が得られるのが素晴らしいと言う評価は未だに変わりません。CSVデータを扱う仕事を楽したいならawkは要チェックですね。