Das sed-Handbuch besagt eindeutig, dass die verfügbaren Rückreferenzen, die für die Ersetzungszeichenfolge in einem Ersatz verfügbar sind, mit den Nummern \ 1 bis \ 9 nummeriert sind. Ich versuche, eine Protokolldatei mit 10 Feldern zu analysieren.Umgehung der sed-Rückverweisgrenze 1 bis 9
Ich habe die Regex dafür gebildet, aber die zehnte Übereinstimmung (und alles danach) ist nicht zugänglich.
Hat jemand eine elegante Möglichkeit, diese Einschränkung in KSH (oder einer anderen Sprache, die ich vielleicht an Shell-Skripte portieren kann) zu umgehen?
Sie können ziemlich viel verwenden jede Skriptsprache, die Sie schreiben Einzeiler hierfür können. 'perl -pe 's/yourrexhere/$ 1 $ 2 $ 3 $ 4 $ 5 $ 6 $ 7 $ 8 $ 9 $ 10 /' ' –
Es ist durchaus möglich, dass Sie eine einfachere Regex verwenden können, die nicht so viele Rückverweise benötigt. Wenn Sie Beispieldaten und ein Beispiel für die von Ihnen gewünschte Ausgabe anzeigen, können wir Ihnen wahrscheinlich einen einfacheren Weg zeigen. –
klingt wie ein Job für 'awk' - Feld 10 ist' $ 10' –