パソコン悪戦苦闘記録

「プログラミング言語AWK」で基本を学ぶ

 簡単なスクリプトなのに、かなり高度なテキストファイルの編集加工ができるコマンド、ないしプログラミング言語AWK(オーク)」の勉強のために、
   書籍 「プログラミング言語AWK
を購入しました。

 「プログラミング言語AWK」は、「AWK Book」、「AWK本」などと呼ばれ、AWKを学ぶのに定番とも言える教科書です。幸いに、つい先日、改訂版が出たばっかりです。まだほやほやで、湯気が立っています。第2版の発行は、2024年5月16日です。




 

 教科書「プログラミング言語AWK」に関しては、
  こちらの記事をご覧ください。

 まだ冒頭部分しか読んでいませんが、非常に分かりやすく丁寧に書かれています。
 第1章は、「AWK」の基本中の基本や、基本的な扱い方が解説されています。これまでAWKというものに全く触れたことがないにもかかわらず、記述内容はすんなりと頭に入ってきます。これは買って正解でした。とても満足です。


 ここで、「AWK」というものがいったい何なのか、つい先日までの私と同じ状態の方に向けて、ごくごく簡単なAWK紹介文を掲載しておきます。

 「AWK」は、上記のとおり、テキストの抽出や、加工など、編集操作をするためのコマンド、ないしプログラミング言語です。
 テキストを1行ずつ読み込んで、スクリプトで指定された処理を行います。その実行結果である、編集加工された後のデータが出力されます。

 AWKは、
   「awk <スクリプト> <対象ファイル>」
という形で実行します。

 例えば次のような形です。
 (「プログラミング言語AWK」冒頭に掲載されている例文)
 $ awk '$3>0 {print $1,$2*$3}' emp.data

 $3>0 {print $1,$2*$3} の部分がスクリプト(プログラム)で、
 emp.data の部分が、対象のファイルです。

 この1行の入力だけで、対象のテキストファイル(emp.data)のデータから、1時間以上働いた従業員の名前と賃金(時給と労働時間の積)を得ることができます。
 たったこれだけで、必要とする結果を得ることができます。強調しておきますが、わずかこの1行だけです。
 こりゃぁ、すげぇやぁ!

 まだ冒頭部分しか読んでいないのに、「すげぇ」と感動できるのですから、読み進めていったらどういう展開になるのか、楽しみです。
 ・・・途中で挫折する可能性もないことはないのですが、本書第1章だけでも十分に得るものがありました。




 それでは、また次の記事で
goosyun


2024年6月9日追記
 awk実行の基本形について、追加記事を書きました。
  こちらの記事をご覧ください。

コメント一覧

goosyun
narkejp さん

 26MBものgooブログのバックアップデータの処理、awkでは難なくできるんですね。
 表計算では処理できないような大量データをawkで処理する、そんなプログラムを作るのが私の夢です。
 一つやってみたい構想があります。私にできるのか、そこまで上達できるか不明なので、今は、明らかにできませんが。
narkejp
ほんとに。著者 Aho 氏の教育経験の豊富さを感じますね。例示はシンプルだけれどもわかりやすく深い。初版当時はコロンビア大学の教授だったんじゃないかな。そんなの、表計算でできる、と思ってしまいがちですが、例えば20年間ほぼ毎日更新した goo ブログのバックアップデータは 26MB ありますが、これを表計算で処理するのは現実的でない。でも、awk ではできてしまう。覚えればテキストデータ処理に役立つのは確かです。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「Ubuntu」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事