1つファイルをそのファイルの中にある「ある文字列」で分割するコマンド「csplit」

| コメント(0) | トラックバック(0)

長いタイトルですが、仕事であるファイル(たとえばmbox形式の1ファイルとか)に「From:」という文字列がいくつもあり、そのFrom:行でスプリットして複数のファイルに分けたい場面がありました。perlでやろうかと思ったのですが、コマンドでないのかと思い、探してみたらやっぱりありました。

csplitというコマンドです。

使い方は、manを見てください。…というのもあれなので、上記の状況の場合には

% csplit -f "x" -b "%04d" web02-top.log '/^From:.*/' '{*}' 

とすると分割されたデータがx0000、x0001…というファイル名のファイルに出力されます。引数は順番に、

-fオプションは、分割したファイルのプレフィックス。x0000ってファイルが出来る。
-bオブションは、分割したファイルの連番の部分のフォーマット。
分割前のファイル
分割する文字列の正規表現
分割回数(この場合は*なので、できる限り分割)

となっています。こんなコマンドあったのね…。

トラックバック(0)

トラックバックURL: http://blog.clouder.jp/mt/mt-tb.cgi/322

コメントする

検索

広告

月別 アーカイブ

OpenID対応しています OpenIDについて
Powered by Movable Type 5.12