複数のテキストファイルであるパターンを変換


複数のテキストファイルがあります：

例：

[code]

    0dd6b4f419f3489a580846fb4ebe831b|one: [$numVotes$ more votes needed]
    0dd6b4f419f3489a580846fb4ebe831b|other: [$numVotes$ more votes needed]
    89e050644a71fbf8170e280f59fb8940: An error occurred during submission
    a4c510816f6c806507bb528c240ed9a9: [closed]
    2de9c2314772731359c387be3656bc19: Are you sure you want to award your bounty to this answer? THIS CANNOT BE UNDONE!
    
[/code]

最初はキーで、複数系が単独系に差がある場合、キーの後に「|one:」か「|other:」がでてきます。単独系・複数系に差がない場合、その部分が抜けていますので、キーの直後に「:」しかないです。

エクセルへインポートしたいため、CSVファイルにしたいです。

[code]

    |one: → ,one,
    |other: → ,other,
    : → ,,
    
[/code]

「:」の後にも「:」がでてくる可能性があるため、最初の「:」だけに適用したいです。

*NIXの「`sed`」を利用できるはずですが、どのように使えばできますか？




foo.txtからfoo.csvへ変換するのであれば、 このように使ってみてはいかがでしょうか。

[code]

    cat foo.txt | sed -e "s/|\(one\|other\):\|:/,\1,/" > foo.csv
    
[/code]




foo.txtからfoo.csvへ変換するのであれば、 このように使ってみてはいかがでしょうか。

[code]

    cat foo.txt | sed -e "s/|\(one\|other\):\|:/,\1,/" > foo.csv
    
[/code]

