In meinen Protokolldateien (*.log) möchte ich sämtliche Vorkommen von Folgendem ersetzen:
"INFO=*",
Zu
"INFO=*;;;",
wo *
könnte alles sein.
Also zum Beispiel: "INFO=1234",S
-> "INFO=1234;;;",S
Gibt es eine Möglichkeit, dies mit sed zu machen?
Antwort1
Verwenden Sie Klammern, um sich den veränderlichen Teil der Zeichenfolge zu merken:
sed -i~ 's/\("INFO=[^"]*\)",/\1;;;",/' *.log
g
Wenn mehr als eine INFO pro Zeile vorkommt, müssen Sie möglicherweise am Ende ein hinzufügen .
Dies funktioniert nicht, wenn * doppelte Anführungszeichen enthält.