巨大なログファイルを適当に分割して持ち運ぶとか.
split はファイルサイズで分割 csplit は特定文字で分割
200k でファイルを分割する
巨大なzip ファイルもばっさり切れます
split -b 200000 foo.zip
これでfoo.zip(2GB)が200,000バイト(200k)単位に 分割される。
分割できても結合出来なくちゃ意味ないじゃん
cat で結合する
なんと、Catです。Catで結合です
cat * > foo.zip
簡単ですねー split はファイルの中身に関係なくバイトで切るのです.
csplit
csplit は、決まり文字を見つけたらファイルを分割する
csplit はファイルのバイト数の替わりに,文字列を見つけたら分割します。
cはchar(文字)の「c」だと思ってましたが,context の「c」のようです
巨大なログファイルを読むにはEmeditorしか無いと思ってたけど,適当に分割すれば何でも読める.
10年以上前の技術は偉大です.ログ整理にHadoopも要らない.ファイル分割してNFSで適当に処理していけばいけばあんなごっついのいらん。
2011-07-28追記
splitのバイト数指定はもっと柔軟
20MBに分割
split -b 20MB fooo.log
100kbに分割
split -b 100kb fooo.log
巨大なファイルは読込に時間が掛かって転送が遅かったりするので,複数ファイルに分割しちゃえば,軽く扱える。意外と重要なんですよ。
巨大すぎてファイル名が多い場合
出力ファイルの名前は PREFIX (デフォルトは `x') に `aa' や `ab' などの文字列集合を付加したものになる。 出力ファイルをファイル名でソートして結合すると 元のファ
イルになるように、付加する文字列が選ばれる。 (676 よりも多くの出力ファイルが必要になる場合は、 split は `zaa', `zab' などを用いる。) このグループの長さは
--suffix-length で変更できる。
676 より多くなる場合は --suffix-length らしい