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.
Antworten
Zu viele Anzeigen?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.
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.
Schau dir die UNIX Power-Tools awk, sed, grep und in-place Bearbeitung von Dateien mit Perl an.
- See previous answers
- Weitere Antworten anzeigen