Dies scheint wie es sein sollte Schmutz einfach, aber das awk gensub/gsub/sub Verhalten war immer unklar für mich, und jetzt kann ich es einfach nicht tun, was zu tun Dokumentation sagt, dass es tun sollte (und welche Erfahrung mit einer Zillion anderer ähnlicher Werkzeuge schlägt, sollte funktionieren). Insbesondere möchte ich von einer Regex in der Ersetzungszeichenfolge auf "erfasste Gruppen" zugreifen. Hier ist, was ich denke, die awk Syntax sein sollte:GNU awk: Zugriff auf erfasste Gruppen im Ersetzungstext
awk '{ gsub(/a(b*)c/, "Here are bees: \1"); print; }'
Das sollte drehen „abbbc“ in „Hier sind Bienen: bbb“. Es geht nicht, zumindest nicht für mich in Ubunutu 9.04. Stattdessen wird das "\ 1" als ein A wiedergegeben; das heißt, das Zeichen mit Code 1. Nicht was ich will, natürlich. Wie mache ich das?
Danke.
Auch nicht nur anders gsub und gensub verhalten gegen Wert zurückzukehren, sondern die ganze \ 1 bis \ 9 Funktion * nur * mit gensub funktioniert. – Pointy
Versuchen Sie 'echo xxxabbcxxx' - die awk" Lösung "bricht –
@Alesandr, fühlen Sie sich frei, eine neue vorzuschlagen –