0

400 000 行のような sth を持つ cvs ファイルを「解析」する必要があります。cvs は次のようになります。

ADDRESS ZIPCODE TOWN      NAME       DESCRIPTION

次のように最初の列を区切る必要があります。

ADDRESS     ZIPCODE     TOWN      NAME       DESCRIPTION

簡単に見えます: 5 桁の数字が表示されるたびに表 (前後) の ZIPCODE を追加します (すべての住所はフランスの郵便番号です)。

しかし、私はどのように知りませんか?sed コマンドラインで試してみましたが、適切な構文が見つかりません。または、VBAの方が適しているかもしれません。

4

2 に答える 2

1
sed -r 's/( [0-9]{5} )/\t\1\t/' yourFile.csv

ノート

  • csv が本当に適切にフォーマットされている場合、 column コマンドは問題の良い解決策です。たとえば、説明文に「,」がありません。

  • 上記の sed 行は、ファイルの各行をチェックし、最初に出現する 5 つの数字/数字を見つけて、TAB で囲みます。ファイル内の郵便番号は次のようになると思います[space]number{5}[space]

  • 「ADDRESS」列に同じ形式があった場合、sed 行は失敗します。

于 2012-06-11T10:37:29.157 に答える
0

column コマンドを使用すると、.csv ファイルのフィールドが次のように分割されます。

column -s, -t file.csv

于 2012-06-11T10:14:13.550 に答える