Другой awk
, более совместимый:
awk '/^[A-Z]*$/{cc=$0;next}sub(/^ +/,"")+sub(";",cc ";")' file
RDTDE;136618;0.0%;100.0%
RDDE;7379;97.8%;2.2%
RDTIT;69424;97.0%;3.0%
RDIT;585;98.7%;0.0%
RDTFR;22870;96.5%;3.5%
RDFR;440;98.8%;0.0%
RDTUK;33167;97.7%;2.3%
RDUK;438;97.3%;0.1%
RDTES;99860;96.9%;3.1%
RDES;391;97.9%;0.1%
Если не нужно удалять начальные пробелы, вы можете удалить sub(/^ +/,"")+
эту часть.
Если у вас есть GNUawk, то можете сделать это так:
awk '/^[A-Z]{2}$/{cc=$0;next}{print gensub(/^\s*([^\s;]+)/, "\\1" cc, 1)}' file