Willst Du die ganzen Leerzeichen weg kriegen ? - dann musst Du das einfach machen, z.B. gleich noch mit sed:
sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,35\}[^)]\) /\1;/; s/ *; */;/g'
Die ganzen Leerzeichen beseitigen wäre aber wohl der letzte Schritt, vorher müssen alle Spalten richtig stimmen !
Hierbei habe ich schon mal Breiten-Bereiche für die Spalten benutzt, denn die 1. Spalte ist ja mal 3 und mal 4 Zeichen breit, ist aber auf jeden Fall durch ein Leerzeichen gekennzeichnet. Und bei der 2. Spalte genauso.
... so muss man sich da weiter herantasten: gucken, was nicht passt, und dann weiter an den Spaltenbreiten herumschrauben.
Und wenn es zum Schluss gar nicht passt (z.B. beim Untertitel "-;Sachliche Gliederung -", wo das ; falsch steht) muss man eben gezielt einzeln nachbessern:
sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,35\}[^)]\) /\1;/; s/ -;/;- /'
(ik sach ja: dat is Fummelei un Fleißaabeit !)
Edit:
Oder vielleicht noch besser: man tastet sich von vorne nach hinten heran, setzt also erstmal an der 30-32. Stelle das ;, und dann wo nur ein ; steht, (also das 2. ; fehlt) bessert man an der an der 33-35. Stelle nach:
sed -e 's/^\(.\{3,4\}\) /\1;/' -e 's/^\(.\{30,32\}\) /\1;/; /^[^;]*;[^;]*$/ s/^\(.\{33,35\}\) /\1;/'
Du musst übrigens aufpassen, dass nicht ein ;, das ganz normal im Text kommt, Dir die Geschichte zerschießt: das kommt z.B. im Punkt 1.3 mal vor: "anwenden; Verhaltensweisen bei Bränden" → dann lieber ein anderes Trennzeichen nehmen, z.B. | oder [TAB] (das benutze ich meistens)
Edit 2:
Noch'n Versuch: die 2. Spalte bei 2 Leerzeichen an der 30-35. Stelle setzen, und danach (wenn das 2. Spaltenende fehlt) immer dort, wo dahinter ein "Leerzeichen, irgendwas, Klammer zu" steht:
sed 's/^\(.\{3,4\}\) /\1|/; s/^\(.\{30,35\}\) /\1|/; /^[^|]*|[^|]*$/ s/^\(.\{30,35\}\) \(.)\)/\1|\2/; s/ Telefon/|&/'
Die Fußzeile mit "Telefon" drin habe ich da auch noch mit korrigiert ...
LG,
track