★圧縮・解凍
データを実際の大きさよりも小さくして保存します。
英数1文字1バイトとります。10文字で10バイト100文字で100バイトとるわけです。
じゃあ、どうやって圧縮するのでしょうか?文字数を減らす方法を考えるのです。
例えば、スペースを圧縮することを考えます。
This is a pen. {間に5文字のスペースが入っています}
という文があったとします。文字数を数えると、11文字+スペース15文字で、全部で
26文字ですから、26バイトの量があるのです。
これを
This5is5a5pen. {5文字のスペースの変わりに数字の5を挟んでいく}
とすると、全部で、11文字+3文字(数字)で18バイトになるわけです。
This5is5a5pen.
が圧縮した形になるわけです。
★★★
実際に作ってみましょう。
This is a pen. |
This5is5a5pen. |
cat {ファイル名} | sed -e 's/ /5/g'
|
cat {ファイル名} | sed -e 's/5/ /g'
|
vi test {テストファイルを作成します}
1000ix {1000回 挿入 xを}
Esc {エスケープ}
:wq {終了します}
|
zip test.zip test |
10000文字のファイルを作成します。 ファイル名:mojimoji これを圧縮してください。 ファイル名:mojimoji.zip |
open(F, ">mojimoji100man");
for(1..1000000) {
print F, "x";
}
|