約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 }
。