質問: awk:linuxとwindows ど素人の質問で申し訳ありません。呆れずに読んでいただければ幸いです。 今、windowsxp上で、awkで.csvファイルの分析をやっています。 5万行くらいの数値データを標準偏差等を計算しながら、標準偏差の0.1倍を元の数値が超えたらその値をマークしろ、0.2倍だとどうか、0.3倍だとどうか、何倍にすれば良いのか等パラメーターを探しております。 計算方法とパラメーターは上記では標準偏差について書きましたが、その他に2~4種類くらいあります。 やっていることは、 1.パラメーターをfor文で逐一変えていく 2.パラメーターと計算方法によって元の数値を計算 3.if文で条件にあったところを抽出 4.最後まで行ったら1.に戻り、パラメーターを変えて再度データを頭から。 ということをしております。 最初はexcel-vbaでやっていたのですが、遅いし、そうだ、awkでできる、と思ってawkで組んでみました。 awkならunixでも動くよな(本家だし)、と気付きました。 そこで質問です。 unixとwindowsでawkの実行速度は違うでしょうか? windows用のawkでも、プログラムによって速度が結構違うようですが。 windows用でもlinux用でも、速いawkがありますでしょうか? あるいは、たぶん情報不足だと思いますが、perl等の方が速いだろうというようなことはありますでしょうか?(触ったことはありません) 2コアや4コアのパソコン用cpuへの対応はどうなっているでしょうか? 今athlonのx2を使っているのですが、windowsのタスクマネージャーを見ると、awkプログラム一つ動かす毎にcpuを50%(cpu片方分目一杯)使っているような感じです。 例えばlinuxだと2cpuが協調して、100%で動作して処理時間が半分になるというようなことはあるでしょうか? また、windowsxpですと、コマントプロンプト(dos窓?)を2つ開けて、二つのawkを同時に実行させるようなこともできているのですが、linuxだと可能でしょうか?(kde?のような画面からawkってどうやって実行させるのでしょうか?) 有名だということでvine linuxのダウンロードを考えておりますが、awkの実行速度という点でこれで良いでしょうか? インストールしてしまえばファイヤーウォールは標準で動いているんでしょうか? 光ケーブルのlan環境でネットに接続しているのですが、ケーブルを繋げば即ウェブにアクセスできるのでしょうか? ウィルス対策は標準でどうなっているのでしょうか? windowsとは状況が違うと思いますが、アンチウィルスだのウィルスバスターだのそんな感じのソフトをインストールする必要があるのでしょうか? ご存じの範囲だけで構いませんのでよろしくお願いいたします。
回答: >unixとwindowsでawkの実行速度は違うでしょうか? >windows用のawkでも、プログラムによって速度が結構違うようですが。 windows版だと、gnu-awk(いろんなosで動く汎用のソース)と、win32用に書き下ろされた版とあると思うので、おそらく後者のほうが速いかと思います。その代わり、言語仕様がlinux版と異なる可能性があります。私はgnu版を使ってますが、速度比較したことは無いですね。何時間もかかる処理はしないので、速度は気にしてません。 >windows用でもlinux用でも、速いawkがありますでしょうか? 上に書きましたが、linuxだとまず間違いなくgnu-awkなので同じです。 >perl等の方が速いだろうというようなことはありますでしょうか? 処理内容によるとしか言いようが無いですが、perlのほうが高度な機能を持っているので、awkだと自分でロジックを書くところがperlだと言語の機能で簡潔に書けるとしたら、perlのほうが速いです。 また大きな処理をすることも想定されているので、おそらく同じような処理でもperlのほうが速いでしょう。 >2コアや4コアのパソコン用cpuへの対応はどうなっているでしょうか? 内部でマルチプロセスで動くawkは無いと思います。 >linuxだと可能でしょうか?(kde?のような画面からawkってどうやって実行させるのでしょうか?) osによって多少違いますが、メニューバーからもしくは画面右クリックで「端末」を選ぶと擬似端末ウィンドウ(シェルプロンプトとでも呼ぶべきもの)が開きます。 >awkの実行速度という点でこれで良いでしょうか? linuxだと同じです。 >インストールしてしまえばファイヤーウォールは標準で動いているんでしょうか? vineは使ったことないのでデフォルトがon/offどちらかわかりませんが、インストール時に選択もしくはインストール後に設定(つまりwindowsと変わらない)。 >ケーブルを繋げば即ウェブにアクセスできるのでしょうか? 今のメジャーなlinuxだと、dhcp標準でfirefoxも付いてますね。 >ウィルス対策は標準でどうなっているのでしょうか? これもwinodwsと同じ。付属はしてないが売っている。 >アンチウィルスだのウィルスバスターだのそんな感じのソフトをインストールする必要があるのでしょうか? 身元不確かなソフトをダウンロードするなら必要でしょう。