Hello mady135,
Could you please try following and let us know if this helps. Let's say folowing is the input file.
Input file:
cat file347
PRUM,67016800 ,CC ,C1,67016800 , ,Y,Y,2 ,CK,BX,FOX ,00000001,EA,00000001,20141120 00:00:00, ,N,Y,Y,CK ABCDEF ,IN,000000047.0000,000000000.7500,000000005.7500,CI,000000202.6875,LB,000000000.6000,000000000.6000,20705032020722, ,A, ,20141120 00:00:00, ,GS1 128 ,1.0000, ,09975284
PRUM,504608X ,CC ,C1,504608X , N ,Y,Y,2 ,CK,BX,FOX ,00000005,EA,00000005,20141120 00:00:00, ,N,Y,Y,CK ABCDEF ,IN,000000010.2500,000000003.5000,000000004.2500,CI,000000152.4688,LB,000000000.5500,000000000.5500,20705032010150, ,A, ,20141120 00:00:00, ,GS1 128 ,1.0000, ,09975172
PRUM,504608X ,CC ,C1,504608X , N ,Y,Y,2 ,CK,BX,FOX ,00000005,EA,00000005,20151120 00:00:00, ,N,Y,Y,CK ABCDEF ,IN,000000010.2500,000000003.5000,000000004.2500,CI,000000152.4688,LB,000000000.5500,000000000.5500,20705032010150, ,A, ,20141120 00:00:00, ,GS1 128 ,1.0000, ,09975172
PRUM,67016800 ,CC ,C1,67016800 , U ,Y,Y,2 ,CK,BX,FOX ,00000001,EA,00000001,20141120 00:00:00, ,N,Y,Y,CK ABCDEF ,IN,000000047.0000,000000000.7500,000000005.7500,CI,000000202.6875,LB,000000000.6000,000000000.6000,20705032020722, ,A, ,20141120 00:00:00, ,GS1 128 ,1.0000, ,09975284
Code is as follows:
awk -F, -vDATE=`date +%Y%m%d` '{A=$16;gsub(/[[:space:]].*/,X,$16);if($16 <= DATE && $16 != ""){next} else {$16=A;print $0}}' OFS=, file347
Output will be as follows.
PRUM,504608X ,CC ,C1,504608X , N ,Y,Y,2 ,CK,BX,FOX ,00000005,EA,00000005,20151120 00:00:00, ,N,Y,Y,CK ABCDEF ,IN,000000010.2500,000000003.5000,000000004.2500,CI,000000152.4688,LB,000000000.5500,000000000.5500,20705032010150, ,A, ,20141120 00:00:00, ,GS1 128 ,1.0000, ,09975172
Thanks,
R. Singh