können Sie Folgendes verwenden:
sed -r 's/.+?Name/Name/g'
Die .+?Name
für alles Namen bis einschließlich aussieht. Wir ersetzen dann alles, was wir gefunden haben, mit nur Name
, was bedeutet, dass wir die vorherigen Teile effektiv loswerden.
Beachten Sie die Optionen sed
geben:
-r use extended regular expressions in the script
Beispieldaten:
$ cat m
runHalfMarathon ==>> 44 :: runFullMarathon ==>> 21 :: Name ==>> Suresh :: Age ==>> 21 ::
runHalfMarathon ==>> 44 :: runFullMarathon ==>> 21 :: Name ==>> foo :: Age ==>> 20 ::
runHalfMarathon ==>> 44 :: runFullMarathon ==>> 21 :: Name ==>> bar :: Age ==>> 1 ::
runHalfMarathon ==>> 44 :: runFullMarathon ==>> 21 :: Name ==>> baz :: Age ==>> 0 ::
Beispiel Ausgabe:
$ cat m | sed -r 's/.+?Name/Name/g'
Name ==>> Suresh :: Age ==>> 21 ::
Name ==>> foo :: Age ==>> 20 ::
Name ==>> bar :: Age ==>> 1 ::
Name ==>> baz :: Age ==>> 0 ::
Es wird nicht funktionieren, weil 'n *' entspricht 0 oder mehr 'n' Symbole. Du musst mit '[^ =] *' gemeint sein. –