2016-04-06 24 views
1

Ich muss das letzte Vorkommen von Speicherplatz in einer Eingabedatei ersetzen, mit sed.Ersetzen Sie das letzte Vorkommen von Speicherplatz durch sed

Was mit ich kam ist

sed "s/([ ])[0-9]*$/,/g" 

Es ist jedoch nicht zu wollen, scheint den Raum zu erinnern, die sie ersetzen angenommen hat. Das Ausführen des Befehls ohne runde Klammern funktioniert gut (für das, was es tun soll - ersetzen Sie die Leerzeichen und die Kette der Zahlen). Wenn ich die Klammern hinzufüge, tut es nichts.

Ja, ich bin bewusst this Lösung, aber beim Versuch, \1 zu sed zu übergeben, schreit es, dass "\ 1 nicht in der RE definiert".

Wer kümmert sich um Hilfe? Es scheint ein einfaches Problem zu sein, ich würde mich freuen, die Lösung zu kennen.

+0

Ich nehme an, Sie „auf * jeder * Linie den letzten Platz“ bedeutete zu arbeiten? Oder vielleicht "auf * a * Linie?" Wahrscheinlich nicht "der letzte Platz in der * Datei", * nehme ich an? – DigitalRoss

Antwort

1

Dies schien „das erste Mal“ (yay) ...

$ sed -e 's/ \([^ ][^ ]*\)$/,\1/' /etc/hosts 
+0

Ich sehe was ich falsch gemacht habe. Ich muss den Klammern entkommen ... –

Verwandte Themen