Unix全般 -> awk

大容量ファイルの作成

スペシャルファイルを使った大容量ファイルの作成

awkで100MBファイルを作成


まず100バイトのファイルを作成する
# ls -l file_100byte.txt
-rw-r--r--   1 root     root         100  9月  3日  12:32 file_100byte.txt
#

100万回繰返して100MBのファイルを作成する。
かかった時間を確認するため前後にdateコマンドをいれる
# date;awk '{for(i=1;i<=1000000;i++){print}}' file_100byte.txt > file_100m.txt;date
2009年09月03日 (木) 12時33分56秒 JST
2009年09月03日 (木) 12時34分10秒 JST
#

約14秒で終了
出来たファイルを確認
# ls -l
-rw-r--r--   1 root     root         100  9月  3日  12:32 file_100byte.txt
-rw-r--r--   1 root     root     100000000  9月  3日  12:34 file_100m.txt
#


perで100MBファイルを作成しどちらが速いか

perl のコード
-------------------------------------
#!/usr/bin/perl
open(FH,">file_100m.txt");
for($i=1;$i<=1000000;$i++){
  print FH "0"x100;
}
close(FH);
-------------------------------------


# date;./mk.pl;date
2009年09月03日 (木) 12時42分35秒 JST
2009年09月03日 (木) 12時42分37秒 JST
# ls -l
合計 195444
-rw-r--r--   1 root     root     100000000  9月  3日  12:42 file_100m.txt
-rwxr-xr-x   1 root     root         106  9月  3日  12:42 mk.pl
#

約2秒で終了

perlの方が断然速い
awk : 14秒
perl:  2秒



ちなみに Shell で同じことをすると 1時間半ほどかかる。
while [ $CNT -le 1000000 ]; do
done




      Document-Folder          一覧
HP-UX
HULFT
JAVA
JP1
JavaScript
Linux
MAC
PHP
Perl
Python
Ruby
SOA
Solaris
Unix全般
Windows
XML
エクセル
スタイルシート
セキュリティー
データベース
ネットワーク
パソコン
ブラウザ
プログラム構文
仮想化
          RSS-Folder
ニュース
   アットマーク・アイティ(@IT)
   シンクイット(ThinkIT)
   インターネットコム
   インターネットウォッチ
   日経IT-Pro
   日経パソコン
   CNET Japan
   ZD-NetJapan
   MYCOM
   RBB-Today
ベンダー
   日本IBM
   日本HP
   サンマイクロシステムズ
   NEC
   富士通
   日立
ソフトウェア
   マイクロソフト
   トレンドマイクロ
   オラクル
   サイボウズ
   Mozilla
   野村総合研究所
   (その他ソフトウェア企業)
更新履歴 一覧
 07/08 PERF
プログラム構文
 07/07 PERF
プログラム構文
 06/25 オブジェクトプログラミング2
Perl>サンプル
 07/12 クローン作成
仮想化>vCenter
 07/12 vyatta設定
ネットワーク>vyatta
 07/12 vyattaインストール
ネットワーク>vyatta
 07/12 リポジトリサーバ
Linux>サーバ構築
 07/05 VMwareのインストール
仮想化>VMware
 07/05 PXEブート
仮想化>KVM
 07/01 DHCPでのPXEブート
仮想化>KVM
 06/27 qcow2仮想DISK作成
仮想化>KVM
 06/13 NWの設定
仮想化>VMwareEsxi
 06/13 IPアドレスの変更
仮想化>VMwareEsxi
 06/12 自動ssh
Unix全般>シェル>Bash
 06/12 diffプログラミング
Python
Google