csvファイルの空のフィールドを0に置き換える

csvファイルの空のフィールドを0に置き換える

9つの列を持つcsvファイルがあり、3つの列ごとに異なる行があります。ファイルは次のとおりです

1  6.2   0.5  1  0.08  0.5   1  0.001  0.1
2  5.2   0.6  2  0.01  1.3   2  0.008  0.8
3  4.3   0.7  3  0.002 0.32
4  2.0   0.7  4  0.2   0.35
5  13.1  1.3  5  0.54  4.32
6  1.02  1.67

Bashスクリプトを使用して空のフィールドを0に置き換えたいと思います。私が作りたい結果は次のようになります

1  6.2   0.5  1  0.08  0.5   1  0.001  0.1
2  5.2   0.6  2  0.01  1.3   2  0.008  0.8
3  4.3   0.7  3  0.002 0.32  3  0      0
4  2.0   0.7  4  0.2   0.35  4  0      0
5  13.1  1.3  5  0.54  4.32  5  0      0
6  1.02  1.67 6  0     0     6  0      0

ベストアンサー1

解決策は、列数をハードコーディングし、その後列だけを空にすることができると仮定することです。

awk 'BEGIN { OFS=FS="\t" } {
  $1=NR; if(!$2)$2=0; if(!$3)$3=0;
  $4=NR; if(!$5)$5=0; if(!$6)$6=0;
  $7=NR; if(!$8)$8=0; if(!$9)$9=0;
  print }' /path/to/your.csv

おすすめ記事