みなさんはオークと言われて何を思い浮かべるだろうか
最近、「World of Warcraft」という映画を見まして僕もオークになりたいと思ったんですよ。何を言っているんだという方々もいると思います。ええ、僕もその一人です。でも、なりたいという気持ちに偽りがなければ種族の壁だってきっと超えられると思うんですよね。
オークといえば、ファンタジー世界の住人の代名詞で気は優しくて力持ちな種族です。そしてマンガなんかでドスケベエルフたちに蹂躙され国や村を失ってしまったりする悲劇の種族でおなじみですね(?)。
そんなわけで僕は今日からオークになります。
AWK(オーク)入門
はい、というわけで意味の分からない導入をしてしまいました。ドットインストールを眺めていたらAWK(オーク)の講座があったのでやってみたという話をするはずだったのになぜかこんな話をしてしまいました。
AWK入門(ドットインストール)
http://dotinstall.com/lessons/basic_awk
僕のブログを最初期から見ている方や舐め回すように記事を読んでいる方はお気づきだと思いますが、僕は窓使いです。たまにリンゴやペンギンの亜種OSを嗜む程度の人間です。なぜ、窓を使うかといいますと、使い続けていればビル・ゲイツが僕の銀行口座に1億ドルを振り込んでくれるという天のお告げを……なんとなくです。
そんなわけでWindowsでは普通には使えないAWKなので環境を導入をしないといけないはずだったのですが、今までやりたい放題環境をカスタマイズしていたおかげで普通に使える環境になっていました。
Windowsで試したい場合はここから取ってくるといいそうです(未検証)
Gawk for Windows
さて、話が飛んでしまいました。なんでしたっけ。そうそう、オークの導入の話でしたね。
そんなわけで、何もしてませんが導入できました。いつ導入したんでしょうね。CLIで環境をカスタマイズしているとこんなことが往々にあるから怖い。
一流のオークになるために
早速ドットインストールにてオークというものを触ってみました。
AWK(オーク)
AWK(オーク)は、UNIX 上で開発されたプログラミング言語で、デフォルトでは改行でレコードが区切られ、各レコードのフィールドは空白類(スペースの他、タブなど)で区切られているようなテキストファイルを扱えるが、カスタマイズも可能であり、また文字列と数値を扱うプログラミングも可能である。
某動画いわく以下の様なことができるそうです。
以下、とりあえずのお作法。
#function 関数(){} # 自作関数 #BEGIN{} #初めに一回だけ処理 { # 変数 hensu = 10 # if(条件式){ 真 }else{ 偽 } # for(i=0; i<10; i++){} # 関数の呼出 関数() } #END #最後に一回だけ処理
なんか書き方にCSSっぽい印象を受ける。変数の型はあまり意識する必要がないらしいです。余計なことを考えなくていいのはいいね。ちなみに"#"はコメントです
何かつくってみる
とりあえず例にならってこのようなファイルを用意します。
1 mail-1 2000/04/01 17:30:00 ななしさん fusianasan 2000/04/02 19:45:00 ななしさん mail-1 2000/04/02 20:50:00 ななしさん mail-2 2000/04/03 21:30:00 ななしさん mail-3 2000/04/03 21:35:00
このファイルをいじっていこうと思います。
―で、処理用に.awkファイルを作ってみました。
$2 != "fusianasan"{ printf("なまえ:%-10s メール:%-10s %s ID:%d \n", $1, $2, $3, int(rand()*10000)) }
fusianasanを除くデータを某掲示板風な感じで表示させてみるやつをつくりました。
awk -f [ファイル名.awk] [処理ファイル]
で実行できるそうなので早速確認します。
こんな感じにできるそうです。簡単なものを作っただけですけど結構楽に作れる感じがしました。
作っているとき乱数の部分もう少し複雑にしたいとか考えていたんですがこれは誰得機能ですね。
使ってみてCSVファイルをうまくいじれるなら、いい感じに使いこなせそうな気がするのでCSVを取り込めるかどうかを次回があればやってみようかと思います。
僕の栄光へのオークロードは始まったばかりだ……。