dポイントプレゼントキャンペーン実施中!

秀丸などのテキストエディタで、csvファイル内の特定の空白をカンマに置き換えたいのですがうまくできません。どなたかお詳しい方助けていただけますでしょうか?
例えば以下のようなcsvファイルのデータがあったとします。

123,サンプル,123 000,カラー,abc efg,サイズ,hij klm,

このデータの"123 000"の文字間の半角スペースの部分だけを数字として認識するために、カンマに置き換えたいと考えています。(セルとして区切りではなく)

【置き換え前】
123,サンプル,123 000,カラー,abc efg,サイズ,hij klm,

【置き換え後】
123,サンプル,123,000,カラー,abc efg,サイズ,hij klm,
(”abc efg”と”hij klm”の文字間の半角スペースはそのままです)

秀丸などのテキストエディタで、"123 000" を"123,000"に置換すると、 csvファイルとして開くときに、123と000が別のセルになってしまい困っています。

エクセルなどを使わずエディタなどで置き換える方法を探しています。

どなたかお詳しい方何卒宜しくお願いいたします。

質問者からの補足コメント

  • ご回答ありがとうございます。
    説明不足で申し訳ありません。
    実際のデータでは"123 000"はデータごとに数値がことなります。
    また桁数もことなるのですが、3桁ごとに空白が空いています。
    そこを空白ではカンマに置き換えたいと考えています。
    宜しくお願いいたします

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/09/10 11:51

A 回答 (4件)

変換後のものが " " で囲まれている状態にする必要があります。



空白が1つだけなら、「(\d+) (\d+)」を「"\1,\2"」に置き換えれば良いです。
空白が2つのケースもあるなら、一回の置き換えでは無理です。まず空白2個の「(\d+) (\d+) (\d+)」を「"\1,\2,\3"」に置き換えてから上の置き換えを行う。
3つ以上あり得るケースも、同じ要領で、まず空白が最大個数のケースを処理してから、何回も置き換えをします。
    • good
    • 0

ちょっと面倒な方法ですが、ExcelでCSVファイルを開いて、該当数値列全体を選択して検索する文字列をスペース1文字、置換後の文字列を","(カンマ1文字を"で囲む)に設定して置換します。

一旦別のCSVファイルへセーブすると該当数値列が123 000から"123"",""000"へ変換されていると思うので、テキストエディタで"",""を,(カンマ1文字)へ変換すれば"123,000"になると思います。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2015/09/14 09:14

まぁ普通に考えれば、csvを前提とするなら数字に挟まれた空白を削除するのが妥当では?


(カンマに変えること自体csvの弱いところをつつくことになるので)
数字だけで埋めればエクセルでひらけば数値になります。

たとえば「(\d) (\d)」を「\1\2」にかえるとか
ただしそのセルが確実に数字だけとか、数字として妥当かどうかまでチェックすると
かなりめんどうな書き方になります。

たとえば「aaa1 2bbb」は上記の検索ワードだとスペースが削除されてしまいます。
また「1234 567」など3桁区切りじゃないデータは文字列なのか数値なのか微妙です。
そのた小数点があるデータなどが出てくるとさらに面倒になります。
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2015/09/14 09:15

テキストエディタの置換機能で


検索を123 000
置換を"123,000" ("付き)
とすればできると思います。
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました!

お礼日時:2015/09/14 09:15

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています