Hoi Marian,
du stellst blöde Aufgaben... Ich hab das jetzt die letzten 2 Stunden getestet und auch mal mit einfacheren Ausdrücken. Ich komme immer zum gleichen Fehlerbild, das \1 funktioniert entweder garnicht, oder (für mich) nicht nachvollziehbar:
$ echo "1b2 " | gawk '{print gensub(/(.+)[[:space:]]+/,"\1","g")"__"}' 1b2 __
Ich hab auch mal diverse andere Möglichkeiten für den regex getestet und bin am Ende auf folgendes gekommen, was auf jeden Fall (in anderen Sprachen) matched:
(.{1,6})[[:space:]]*$
Wenn ich mir deine Aufgabe so anschaue, dann wäre vielleicht folgendes für dich ein Behelf:
$ echo -n " abs123456 " | gawk '{gsub(/[[:space:]]*/,"",$0); print substr($0,length($0)-5,length($0))"__"}' 123456__
Allerdings kenne ich ja hier die genauen Strings nicht, und vor allem weiß ich nicht, ob da eventuell davor noch irgendwo Leerzeichen kommen. Dazu muss ich sagen, das ich in awk nicht so fit bin, wie es vielleicht nötig wäre. Daher bin ich gespannt, ob andere noch ne Lösung (oder zumindest ne Erklärung) finden.
Und im Zweifelsfall: Lern endlich mal ne richtige Programmiersprache :p
Grüße,
Danilo