ich möchte in jeder Zeile die letzten 2 Bindestriche + was da zwischen steht entfernen
Beispiel: Test-Test-Test-3.4_SVNr142-7.10 übrig bleiben soll nur noch Test-Test-Test
aktuell bleibt bei mir nur noch "Test" übrigich habe folgenden sed Ausdruck
sed -e 's/-.*-.*$//g' Eingabedatei >Ausgabedatei;per google habe ich gefunden, dass das an den gierigen Ausdruck * liegt, wenn man *? verwendet, soll der Ausdruck nicht mehr gierig sein.
wenn ich
sed -e 's/-.*?-.*?$//g' Eingabedatei >Ausgabedatei;
verwende, erhalte ich "Test-Test-Test-3.4_SVNr142-7.10" zurück.An welcher Stelle mache ich den Fehler?
Ich kenne sed nicht und weiss demnach nicht welche POSIX oder Perl Features hier unterstützt werden.
Du solltest im Zweifelsfall das Ende des Strings etwas gewählter bezeichnen.
Eventuell wird eine negative Zeichenklasse [^-] liess Nicht '-' unterstützt.
s/-[^-]*-[^-]*$//g
mfg Beat