Add 0 values to replace empty value

Hi Guys.

Please can you help me to add 0 values. Starting in column 121

Imput file

A          4175.0  8055.01211 75   1  -2172671 77 45 16 457626.4 2609265.1 131.3  1090 102 1                   1T N/A124    15 0.8    1051670971100000
A          4175.0  8055.012 7 75   2  -5204072 78 43 25 457627.7 2609284.5 131.8  1090 102 1                   1T N/A124    15 0.8    1051670971100000
A          4173.0  8055.01211 75   1  -3142772 77 61 18 457624.6 2609212.6 131.1  1089 102 1                   1T N/A124   009 0.8    1051671025148000
A          4173.0  8055.012 7 75   1  -3132772 79 61 16 457625.2 2609231.2 131.1  1089 102 1                   1T N/A124   009 0.8    1051671025148000
A          4171.0  8055.01211 75   1   3142671 77 40 26 457622.6 2609161.0 131.6  1088 102 1                   1T N/A124  5121 0.8    1051671097224000
A          4171.0  8055.012 7 75   1   3162772 77 48 20 457622.2 2609179.5 131.2  1088 102 1                   1T N/A124  5121 0.8    1051671097224000
A          4169.0  8055.01211 75   1   3152571 77 34 26 457625.4 2609110.6 131.9  1087 102 1                   1T N/A124 55215 0.8    1051671151300000
A          4169.0  8055.012 7 75   1  -2172972 78 43 27 457624.3 2609129.2 131.8  1087 102 1                   1T N/A124 55215 0.8    1051671151300000
A          4167.0  8055.01211 75   1   3162971 75 36 25 457626.9 2609064.4 131.6  1086 102 1                   1T N/A124155327 0.8    1051671223416000
A          4167.0  8055.012 7 75   1  -3142772 76 43 26 457627.0 2609083.5 132.5  1086 102 1                   1T N/A124155327 0.8    1051671223416000

Desire output

A          4175.0  8055.01211 75   1  -2172671 77 45 16 457626.4 2609265.1 131.3  1090 102 1                   1T N/A124000015 0.8    1051670971100000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4175.0  8055.012 7 75   2  -5204072 78 43 25 457627.7 2609284.5 131.8  1090 102 1                   1T N/A124000015 0.8    1051670971100000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4173.0  8055.01211 75   1  -3142772 77 61 18 457624.6 2609212.6 131.1  1089 102 1                   1T N/A124000009 0.8    1051671025148000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4173.0  8055.012 7 75   1  -3132772 79 61 16 457625.2 2609231.2 131.1  1089 102 1                   1T N/A124000009 0.8    1051671025148000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4171.0  8055.01211 75   1   3142671 77 40 26 457622.6 2609161.0 131.6  1088 102 1                   1T N/A124005121 0.8    1051671097224000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4171.0  8055.012 7 75   1   3162772 77 48 20 457622.2 2609179.5 131.2  1088 102 1                   1T N/A124005121 0.8    1051671097224000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4169.0  8055.01211 75   1   3152571 77 34 26 457625.4 2609110.6 131.9  1087 102 1                   1T N/A124055215 0.8    1051671151300000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4169.0  8055.012 7 75   1  -2172972 78 43 27 457624.3 2609129.2 131.8  1087 102 1                   1T N/A124055215 0.8    1051671151300000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4167.0  8055.01211 75   1   3162971 75 36 25 457626.9 2609064.4 131.6  1086 102 1                   1T N/A124155327 0.8    1051671223416000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
A          4167.0  8055.012 7 75   1  -3142772 76 43 26 457627.0 2609083.5 132.5  1086 102 1                   1T N/A124155327 0.8    1051671223416000                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                

Your help is appreciated :b:

Is it a fixed length file? I mean length of the each line remains same

Hi vidyadhar85,

Yes it is fix length for each line

Then try below..

 
awk '{v=substr($0,115,12);gsub(/ /,"0",v);print substr($0,1,114) v substr($0,127)}' filename

Note: this can be made much shorter :slight_smile:

Thanks vidyadhar85

It works fine

awk ' { printf("%s%06d%s\n", substr($0,1,120), substr($0,121,6), substr($0,127)) } ' file
1 Like
gawk 'BEGIN{FIELDWIDTHS="120 6 80"} {gsub(FS,0,$2)}1' OFS= file
1 Like
$ sed ":a s/^\(.\{120,125\}\) /\10/; T; ba" input
A          4175.0  8055.01211 75   1  -2172671 77 45 16 457626.4 2609265.1 131.3  1090 102 1                   1T N/A124000015 0.8    1051670971100000
A          4175.0  8055.012 7 75   2  -5204072 78 43 25 457627.7 2609284.5 131.8  1090 102 1                   1T N/A124000015 0.8    1051670971100000
A          4173.0  8055.01211 75   1  -3142772 77 61 18 457624.6 2609212.6 131.1  1089 102 1                   1T N/A124000009 0.8    1051671025148000
A          4173.0  8055.012 7 75   1  -3132772 79 61 16 457625.2 2609231.2 131.1  1089 102 1                   1T N/A124000009 0.8    1051671025148000
A          4171.0  8055.01211 75   1   3142671 77 40 26 457622.6 2609161.0 131.6  1088 102 1                   1T N/A124005121 0.8    1051671097224000
A          4171.0  8055.012 7 75   1   3162772 77 48 20 457622.2 2609179.5 131.2  1088 102 1                   1T N/A124005121 0.8    1051671097224000
A          4169.0  8055.01211 75   1   3152571 77 34 26 457625.4 2609110.6 131.9  1087 102 1                   1T N/A124055215 0.8    1051671151300000
A          4169.0  8055.012 7 75   1  -2172972 78 43 27 457624.3 2609129.2 131.8  1087 102 1                   1T N/A124055215 0.8    1051671151300000
A          4167.0  8055.01211 75   1   3162971 75 36 25 457626.9 2609064.4 131.6  1086 102 1                   1T N/A124155327 0.8    1051671223416000
A          4167.0  8055.012 7 75   1  -3142772 76 43 26 457627.0 2609083.5 132.5  1086 102 1                   1T N/A124155327 0.8    1051671223416000
1 Like

Note: the "T" command is GNU sed only...
Nicely done with range repetition..

----
With this adaptation it should also work in regular sed:

sed -e :a -e "s/^\(.\{120,125\}\) /\10/; ta" file
2 Likes

Thanks to everrbody for your help :b:

Thanks. :slight_smile: