Входной файл
797 47 M797 1 365.0 0.05 0.05 A 0.825
798 47 M798 1 365.0 0.05 0.05 A 0.825
799 47 M799 1 365.0 0.70 0.70 A 0.404
800 47 M800 1 365.0 0.00 0.00 A 0.990
801 47 M802 1 365.0 0.29 0.29 A 0.591
802 47 M804 1 365.0 0.12 0.12 A 0.726
803 47 M807 1 365.0 0.12 0.12 A 0.726
804 47 M808 1 365.0 0.12 0.12 A 0.726
805 47 M812 1 365.0 0.12 0.12 A 0.726
806 47 M813 1 365.0 0.12 0.12 A 0.726
Код
#!/usr/bin/awk -f
BEGIN{ al=790 # added lines at start
ap=0 # appended lines (missing)
}
{
lc=$1 # line counter
$1=lc+ap # adjust line number
mr=substr($3,2,6) # marker
while( NR+al+ap < lc ){ print "added ++" ++al, ap,"lc=" lc}
while( NR+al+ap < mr ){ print $1; $1=lc+(++ap); }
if ( lc+ap == mr ){ print }
if ( lc+ap > mr ){ print "errorerror"; exit}
}
Выход
added ++791 0 lc=797
added ++792 0 lc=797
added ++793 0 lc=797
added ++794 0 lc=797
added ++795 0 lc=797
added ++796 0 lc=797
797 47 M797 1 365.0 0.05 0.05 A 0.825
798 47 M798 1 365.0 0.05 0.05 A 0.825
799 47 M799 1 365.0 0.70 0.70 A 0.404
800 47 M800 1 365.0 0.00 0.00 A 0.990
801
802 47 M802 1 365.0 0.29 0.29 A 0.591
803
804 47 M804 1 365.0 0.12 0.12 A 0.726
805
806
807 47 M807 1 365.0 0.12 0.12 A 0.726
808 47 M808 1 365.0 0.12 0.12 A 0.726
809
810
811
812 47 M812 1 365.0 0.12 0.12 A 0.726
813 47 M813 1 365.0 0.12 0.12 A 0.726
Pablo
08.03.2017, 21:00
Ссылка