欠落値空間をゼロに置き換える

欠落値空間をゼロに置き換える

約30K行のinput.txtタブで区切られたテキストファイルがあり、各行(s1..s30K行)に欠落値(スペースなど)があることを確認し、欠落値をゼロ値で埋めたいと思います。見てください。txt

入力.txt

 id  no1  no2  no3  no4
 s1  23   34   45   12
 s2       4    4      
 s3  4         8    0

出力.txt

id  no1  no2  no3  no4
s1  23   34   45   12
s2  0     4    4    0  
s3  4     0    8    0

ベストアンサー1

awkでこれを行うことができます。

awk 'BEGIN { FS = OFS = "\t" } { for(i=1; i<=NF; i++) if($i ~ /^ *$/) $i = 0 }; 1' file

説明する

FSとOFSをタブに設定すると、出力は適切に区別されます。 forループは各フィールドを見て、空の場合は0に設定します。最後はの略です{ print $0 }

おすすめ記事