Ich möchte die letzten beiden Zahlen (eine int, eine float; gefolgt von einem optionalen Leerzeichen) abrufen und nur diese drucken.
Beispiel:
foo bar <foo> bla 1 2 3.4
Sollte drucken:
2 3.4
Bisher habe ich folgendes:
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/replacement/p'
wird mir geben
foo bar <foo> bla 1 replacement
Wenn ich jedoch versuche, es durch Gruppe 1 zu ersetzen, wird die gesamte Zeile gedruckt.
sed -n 's/\([0-9][0-9]*[\ \t][0-9.]*[\ \t]*$\)/\1/p'
Wie kann ich nur den Abschnitt der Zeile drucken, der dem regulären Ausdruck in der Gruppe entspricht?
-r
Option "--regexp-extended" hinzufügen, da sonstinvalid reference \1 on
der RHS-Fehler des Befehls s angezeigt wurde .