15 Stimmen

Find and replace in Shell-Skripting

Ist es möglich, in einer Datei mit der Shell zu suchen und dann einen Wert zu ersetzen? Wenn ich einen Dienst installiere, möchte ich in der Lage sein, eine Variable in einer Konfigurationsdatei zu suchen und dann meine eigenen Einstellungen in diesem Wert zu ersetzen/einzufügen.

30voto

Oleksandr Kravchuk Punkte 5689

Sicher, das können Sie mit sed oder awk machen. Beispiel mit sed:

sed -i 's/Andrew/James/g' /home/oleksandr/names.txt

11voto

octopusgrabbus Punkte 10210

Sie können sed verwenden, um Suche/Ersetze durchzuführen. Ich mache dies normalerweise aus einem Bash-Shell-Skript und verschiebe die Originaldatei, die die zu ersetzenden Werte enthält, in einen neuen Namen. Führe dann sed aus und schreibe die Ausgabe in meine Originaldatei wie folgt:

#!/bin/bash
mv myfile.txt myfile.txt.in

sed -e 's/PatternToBeReplaced/Replacement/g' myfile.txt.in > myfile.txt.

Wenn Sie keine Ausgabe angeben, wird die Ersetzung auf stdout gehen.

2voto

embedded.kyle Punkte 10786
sed -i 's/variable/ersatz/g' *.conf

1voto

Flashpix Punkte 136

Sie können Sed verwenden, um dies zu tun:

sed -i 's/ersetzen/dieseinstellung/' konfigurationsdatei 

Sed ist wahrscheinlich auf jedem Unix-ähnlichen System verfügbar. Wenn Sie mehr als ein Vorkommen ersetzen möchten, können Sie ein g zum s-Befehl hinzufügen:

sed -i 's/ersetzen/dieseinstellung/g' konfigurationsdatei 

Seien Sie vorsichtig, da dies Ihre Konfigurationsdatei vollständig zerstören kann, wenn Sie Ihren zu ersetzenden Wert nicht korrekt angeben. Sed unterstützt auch reguläre Ausdrücke bei der Suche und Ersetzung.

1voto

Vidul Punkte 9636

Schau dir die UNIX Power-Tools awk, sed, grep und in-place Bearbeitung von Dateien mit Perl an.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X