カンマ区切りの値を持つ.datファイルを.csvファイルに変換するには?

カンマ区切りの値を持つ.datファイルを.csvファイルに変換するには?

.datこれらのファイルがあります。

    Name, Age, Place, Country
    A, 1, Ch, In
    B, 2, Ch, In
    C, 3, , In

.csvファイルに変換したいです。名前、年齢、場所、国タイトルとして。

どうすればいいですか?

ベストアンサー1

ファイルに空白と空白行が多すぎると仮定すると、csvkitパッケージを使用awkして削除できます。csvformat

$ cat file

    Name, Age, Place, Country

    A, 1, Ch, In

    B, 2, Ch, In

    C, 3, , In
$ awk 'NF' file | csvformat -S
Name,Age,Place,Country
A,1,Ch,In
B,2,Ch,In
C,3,,In

このawkコマンドは最初に生データを読み取り、空白で区切られた空白以外の内容を含む行のみを出力します。これにより空白行が削除されます。

その後、コマンドはcsvformat残りのデータを正しい形式のCSVデータセットに再フォーマットします。-S()オプションは、--skipinitialspaceそれを含むフィールドから初期スペースを削除します。

これはすべて、データにカンマまたは改行を含むフィールドが含まれていないと仮定します。

おすすめ記事