# function trd(v) { # Add decimal point to number if missing if (index(v, ".") > 0) return(v); if(compress(v) == "") return(v); # Blanks lv = length(v); for (ib = length(v); substr(v,ib,1) == " "; ib--) ; return substr(v,1,ib) "." substr(v,ib+2); } function prt() { iau = substr(line[0], 1, 9); c1950 = substr(line[0],23,12) substr(line[1],22,12); c2000 = substr(line[0], 36,12) substr(line[1],35,12); ip = index(line[0], "("); if (ip > 0 && ip < 72) rz = ")"; else rz = " "; printf("%s%s%s%-5s%-12s%-24s%s%s", iau,c1950,bl,wl,substr(line[0],11,12),c2000,\ trd(substr(line[0],48,5)),\ tr(substr(line[0],53,20),"()"," ") rz substr(line[0], 73, 1)); print substr(line[0], 74); id1 = substr(line[1], 11, 11); if (id1 != " " || length(line[1]) > 60) \ printf("%s%s%s%-5s%-12s%-24s%-27s%s\n",iau,c1950,bl,"+",id1,c2000,"",substr(line[1],74)); for (i=2; i < lines; i++) { id1 = substr(line[i], 11, 12); printf("%s%s%s%-5s%-12s%-24s%-27s%s\n",iau,c1950,bl,"+",id1,c2000,"",substr(line[i],74)); } lines = 0; wl = ""; bl=""; } /^ *$/ { next } /^[012]/ { if (lines > 0) prt(); lines = 0; line[lines++] = $0; getline; bl = substr($0,1,1); c = substr($0,8,1); if (c != " ") wl = wl c; d1 = substr($0,22,2); d2 = substr($0,35,2); if (d1 == " -") d1 = "-0"; if (d2 == " -") d2 = "-0"; if (length > 118) line[0] = line[0] " " substr($0,119); line[lines++] = substr($0,1,21) d1 substr($0,24,11) d2 substr($0,37,81); next } { c = substr($0,8,1); if (c != " ") wl = wl c; i2 = int(lines/2); line[lines++] = substr($0,1,117); if (length > 118) line[i2] = line[i2] " " substr($0,119); } END { if (lines > 0) prt(); #print "Lines with only notes:" only_notes; }