madasafish
Technical User
I am getting odd output. Any help appreciated,
Madasafish
Code:
gawk '{
for (i = 1; i <= 500; i=i+100)
if (substr ($0,10,4) > i && (substr ($0,10,4) <i+100))
print $0 " Location_"i"-"i+99
}' $infile
$infile
D200805301 3320842 1.00
D200805302 3320842 1.00
D2008053010 3320842 1.00
D2008060199 3320842 0.87
D20080602100 3320842 0.82
D20080603101 3320842 0.77
D20080603199 3320842 0.77
D20080602200 3320842 0.82
D20080604201 3320842 0.72
D20080605299 3320842 0.66
D20080602300 3320842 0.82
D20080606301 3320842 0.61
D20080607399 3320842 0.55
D20080602400 3320842 0.82
D20080608401 3320842 1.47
D20080608499 3320842 1.47
D20080602500 3320842 0.82
Notes:
"Wrong" entry should be in Location 1-100
Location 99 is missing 4th line down in infile
Everything else looks correct
Output
D200805301 3320842 1.00 Location_1-100
D200805302 3320842 1.00 Location_101-200 <--Wrong
D2008053010 3320842 1.00 Location_1-100
D20080602100 3320842 0.82 Location_1-100
D20080603101 3320842 0.77 Location_101-200
D20080603199 3320842 0.77 Location_101-200
D20080602200 3320842 0.82 Location_101-200
D20080604201 3320842 0.72 Location_201-300
D20080605299 3320842 0.66 Location_201-300
D20080602300 3320842 0.82 Location_201-300
D20080606301 3320842 0.61 Location_301-400
D20080607399 3320842 0.55 Location_301-400
D20080602400 3320842 0.82 Location_301-400
D20080608401 3320842 1.47 Location_401-500
D20080608499 3320842 1.47 Location_401-500
D20080602500 3320842 0.82 Location_401-500
Madasafish
Code:
gawk '{
for (i = 1; i <= 500; i=i+100)
if (substr ($0,10,4) > i && (substr ($0,10,4) <i+100))
print $0 " Location_"i"-"i+99
}' $infile
$infile
D200805301 3320842 1.00
D200805302 3320842 1.00
D2008053010 3320842 1.00
D2008060199 3320842 0.87
D20080602100 3320842 0.82
D20080603101 3320842 0.77
D20080603199 3320842 0.77
D20080602200 3320842 0.82
D20080604201 3320842 0.72
D20080605299 3320842 0.66
D20080602300 3320842 0.82
D20080606301 3320842 0.61
D20080607399 3320842 0.55
D20080602400 3320842 0.82
D20080608401 3320842 1.47
D20080608499 3320842 1.47
D20080602500 3320842 0.82
Notes:
"Wrong" entry should be in Location 1-100
Location 99 is missing 4th line down in infile
Everything else looks correct
Output
D200805301 3320842 1.00 Location_1-100
D200805302 3320842 1.00 Location_101-200 <--Wrong
D2008053010 3320842 1.00 Location_1-100
D20080602100 3320842 0.82 Location_1-100
D20080603101 3320842 0.77 Location_101-200
D20080603199 3320842 0.77 Location_101-200
D20080602200 3320842 0.82 Location_101-200
D20080604201 3320842 0.72 Location_201-300
D20080605299 3320842 0.66 Location_201-300
D20080602300 3320842 0.82 Location_201-300
D20080606301 3320842 0.61 Location_301-400
D20080607399 3320842 0.55 Location_301-400
D20080602400 3320842 0.82 Location_301-400
D20080608401 3320842 1.47 Location_401-500
D20080608499 3320842 1.47 Location_401-500
D20080602500 3320842 0.82 Location_401-500