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