Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

はじめに 本稿はAWKという言語を用いて、 ごく簡単にデータ分析用の前処理*1をするための解説記事です。 AWKは短いコマンドを記述するだけで多様なデータ処理を可能にします。 特にデータの抽出に関して恐るべき簡易さを提供します。 具体的には、input.txtというファイルの中から "fail"という文字列を含む行を抽出したければ次のように書くだけです。 awk /fail/ input.txt つまり、スラッシュ記号で文字列を指定するだけで その文字列を含む行を抽出できるのです。 大変簡単ですね! また、awkはLinuxやMacには標準で入っており、 Windowsでもawk.exeを一つ用意するだけなので、 面倒なインストール作業や環境構築は不要で誰でも即座に使えるため、 自分で書いた処理を他人に渡したり*2各サーバに仕込むなども簡単に出来ます。 複雑な処理をする場合はPythonや
printfを利用することで小数点第N位での切捨てが簡単にできる...と思ったていたら、不思議な結果になりました。 「0.5」が四捨五入になりません。 でも「0.51」は四捨五入になるようです。 echo "0.124" | awk '{printf("%0.2f", $1)}' # => 0.12 echo "0.125" | awk '{printf("%0.2f", $1)}' # => 0.12 echo "0.1251" | awk '{printf("%0.2f", $1)}' # => 0.13 echo "0.126" | awk '{printf("%0.2f", $1)}' # => 0.13 ... これwindows cygwinのawkだけ? それとも、他の言語のprintfでもそうなのかな?? そのうち 検証します
Ed Morton による getline の問題点の指摘 を翻訳してみました。少し強引なところはありますが、初心者が getline の罠にかかって comp.lang.awk に投稿して、また Ed を怒らすくらいなら読んでおいて損はないと思います。一方、awker であっても getline の回避方法を知っておいた方が良いので、ぜひ一読ください。ただし、翻訳が分かりにくいのは私のせいでもあるのですが、時々原文でも分かりにくい点があるので、両方を見比べて下さると助かります。 以下の要約は、getline の (間違った) 使用を繰り返さないため Ed Morton が書い たものであり、主に Arnold Robbins の "Effective Awk Programming" 第 3 版 (http://www.oreilly.com/catalog/awkprog3) のレビュ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く