2009-06-01 12 views

Antwort

9

I-Code up normalerweise ein Einzeiler dafür:

perl -i -pe 's/some/thing/' log.file 

Here

Siehe
+0

Aber warum kann ich keine Rücksicherungen verwenden? Wie Perl -pi -e "s/foo (. *) Bar/bar $ 1foo /" tezt2 funktioniert nicht .. –

+2

Ihre Shell ist wahrscheinlich die Zeichenfolge korrumpieren. Versuchen Sie, Ihr "" mit "s" zu ersetzen, damit das * nicht erweitert wird. –

+0

Danke das ist es! –

8

Diese oft mit einem Einzeiler getan wird:

perl -pi.bak -e "s/find/replace/g" <file> 

Notiere die -i.bak Teil - Dies erstellt eine Sicherungsdatei mit der Erweiterung .bak. Wenn Sie ohne Netz spielen möchten, können Sie dies tun, um die vorhandene Datei ohne Sicherung zu überschreiben:

perl -pi -e "s/find/replace/g" <file> 
1

oder Sie verwenden können sed (ich weiß ... Sie gebeten, über Perl):

sed -i 's/find/replace/g' <file> 
+0

Die Art und Weise, wie sed Regeln für reguläre Ausdrücke behandelt, ist ... anders als Perl, um es gelinde auszudrücken. – GJTorikian

Verwandte Themen