.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
それを含むフィールドから初期スペースを削除します。
これはすべて、データにカンマまたは改行を含むフィールドが含まれていないと仮定します。
答え2
ファイル.dat
はすでにカンマで区切られているので、サフィックスをに変更するだけで.csv
十分です。
空白と空白行を削除するには:
cat input.txt | sed 's/ //g' | grep -v '^$' > output.txt