Help on Script of line delete and add

Hey guys ,

I want create one script which give below output form my input:

Input file A

ABC12 122
ABC12 -0.7[dB]
ABC12 126
ABC12 0.0[dB]
ABC12 1210
ABC12 -0.7[dB]
ABC12 128
ABC12 17.3[dB]
ABC12 120
ABC12 21.9[dB]
ABC12 124
ABC12 19.5[dB]
ABC23 131
ABC23 130
ABC23 122
ABC23 120
ABC23 22.9[dB]

Output File B

ABC12 122  -0.7[dB]
ABC12 126   0.0[dB]
ABC12 1210 -0.7[dB]
ABC12 128  17.3[dB]
ABC12 120  21.9[dB]
ABC12 124  19.5[dB]
ABC23 131  N/I
ABC23 130  N/I
ABC23 122  N/I
ABC23 120  22.9[dB]

Thanks In Adavnce

Hi,
Try this one,

Two Versions of solution.
 
1. awk 'BEGIN{col2=0;}{c=0;if( $0 ~ /dB/){print $1,col2,$2;c=1;}if(NR != 1 && c == 0 && p !~ /dB/ ){print p,"N/I";}col2=$2;p=$0;}' File
 
2. awk '{a[NR]=$0;if($0 ~ /dB/){b[NR]=$2}} END{for(i=1;i<NR;i++){ if( a !~ /dB/){ if(b[i+1]~ /^$/){b[i+1]="N/I"}; print a,b[i+1]}}}' File
 

Cheers,
Ranga:-)

1 Like
sed -n -e '/ABC12/{h;n;H;x;/dB/{s/\n/ /;s/ABC[0-9][0-9]//2;p}};/ABC23/{/131/!{h;n;H;x;/dB/!p;/dB/{s/ABC23//2;s/\n/ /;p}};/131/p}' a  |  \
awk '{print NF<3?$0"  N/I":$0}'
1 Like
awk 'p && /dB/{print p FS $2;p=x;next} p{print p FS "N/I"} {p=$0} END{if(p)print p FS "N/I"}' infile
1 Like

Thanks a lot guys .....

Scrutinizer Its great solution ...