テキストファイルを任意のルールで分割する

今はNokia携帯を愛用しているのだが、以前使っていたVodafone V603SHのカレンダー機能はかなり活用していたので、重要な記録が結構記録された状態でそのまま放置されている。IrDA(赤外線)通信で一件ずつ705NKに転送すればSMS扱いでカレンダーに取り込めるのだが、べらぼう多いので困ってしまいそのまま放置していたのだ。

V603SHのバックアップ機能を使うと、カレンダーのデータをSDカードのバックアップフォルダにVCSファイルとして纏めて保存してくれるので、それを赤外線でThinkPadに転送してみた。それをMSのOutlookでインポートしようとすると、一番最初の一件しかインポート出来ない。どうやら一件一ファイルに分割しないとダメっぽい。さてどうしようか..

調べてみたら、Linuxのコマンドに

csprit

というのがある。こいつは任意の文字で区切ってくれて、区切った結果を一つずつファイルに出力してくれる便利なコマンドだ。これを使わない手はないだろう。と言う訳でV603SHのSDカードに保存したカレンダーのバックアップファイル(1つ)をSCPでLinuxサーバに転送した。そして下記のようにコマンドを入れてみた。[BEGIN:VCALENDAR]という文字で始まる規則性があるからこの文字でカットして欲しいのだ。

$ csplit -z -f calendar -n 4 20080213.vcs /^BEGIN:VCALENDAR/ {*}
$ ls
$ calendar0000 calendar0001 calendar0002 calendar0003 …….以下省略

何しろ分割してみて分かったのだが、350件のエントリーがあったようだ。これは手作業で出来るもんか。このコマンドのお陰で助かった。

しかし、拡張子.vcsの付け方が分からない。どうやったらいいんだろう?

仕方ないのでSCPでWindowsに戻してから、コマンドプロンプトでrenコマンドを使って行った。

C:\Data>ren calendar* *.vcs

Linuxのコマンドと、Windowsのコマンドを合わせて実現出来た。

しかーし、Outlookはやっぱり1ファイルずつしかインポート出来ない事が判明した..orz
相変わらず、値段高い割にカスな仕様やな(涙 一歩進んだがまだゴールは遠そうだ。

【参考サイト】

コメント

Comment spam is annoying.

There has been an increase in comment spam, but we decline it. It’s pointless because we use Akismet to block spam comments. Spam comments will not be posted.

コメントスパムが増えていますがお断りします。akismetでスパムコメントを弾いているので無意味です。スパムコメントは掲載されません。

ブロックしたスパム

DMM広告

タイトルとURLをコピーしました