I have input.txt tab-delimited text file around 30K lines, I would like to check each row (s1..s30K lines) for missing value (i.e blank space) and fill the missing value with zero value.See out.txt
input.txt
id no1 no2 no3 no4
s1 23 34 45 12
s2 4 4
s3 4 8 0
out.txt
id no1 no2 no3 no4
s1 23 34 45 12
s2 0 4 4 0
s3 4 0 8 0
Best Answer
You could do it like this with awk:
Explanation
Setting FS and OFS to tab ensures the output is correctly delimited. The for-loop looks at every field and sets it to zero if it is empty. The one at the end is a shorthand for
{ print $0 }
.