Ändern der Inhalt einer Datei durch shell-Skript
Habe ich eine Anforderung, wo ich brauche zum ändern des Inhalts einer Datei, sagen wir xyz.cfg. die Datei enthält Werte wie:
group address=127.8.8.8
port=7845
Jboss username=xyz_ITR3
Möchte ich dies ändern, Inhalte Wann immer nötig durch ein shell-Skript, und speichern Sie die Datei. Geändert von Inhalten Aussehen kann:
group address=127.8.7.7
port=7822
Jboss username=xyz_ITR4
Wie kann ich erreichen, das die Verwendung von shell-Skript unter der Benutzer-Eingang oder nicht?
- Sie sollten Fragen Sie eine bestimmte Frage zu einem bestimmten problem. Da Stack-Überlauf versteckt die Engen Grund von Ihnen: "Fragen, bitten, uns zu empfehlen, oder finden Sie ein Buch, tool, software library, tutorial oder andere off-site-resource off-topic für Stack-Überlauf, da Sie dazu neigen zu locken, rechthaberisch Antworten und spam. Stattdessen beschreiben Sie das problem, und was wurde bisher getan, um es zu lösen."
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie wäre es mit etwas wie:
Wo
$1,$2
und$3
sind die Argumente an das Skript übergeben. Speichern Sie eine Datei wiescript.sh
und stellen Sie sicher, dass es ausführbar mitchmod +x script.sh
dann können Sie ihn ausführen, wie:Dies gibt Ihnen die grundlegende Struktur jedoch würden Sie wollen, zu denken über die Eingabe überprüft ect.
*
*
Ich hoffe, dass dies ein einfacher zu verstehen für Einsteiger
Bearbeiten filename.txt im Ort und Stelle, und ändern Sie das Wort 'etwas' zu 'anderen'
Denke ich -ich kann eine GNU-Erweiterung zwar nicht, aber wenn es OK für Sie ist, können Sie ihn über find, xargs etc.
Wenn Sie möchten, ändern Sie es in ein shell-Skript, können Sie die Argumente auf der Befehlszeile ein, und bezeichnen Sie durch die Zahl, z.B. $1
Edit:
Als pro meinen Kommentar, sudo_O die Antwort von unten ist genau das Beispiel, das Sie wollen. Was will ich hinzufügen, ist, dass es ist üblich, dass Sie wollen, zu tun, solche Spiele mit mehreren Dateien, spanning Unterverzeichnisse etc, so kennen find/xargs, und können Sie kombinieren die zwei. Ein einfaches Beispiel, sagen wir ändern die Subnetz in ein Bündel .cfg-Dateien können sein:
Hinweis: die -print0/-0 Argumente zu finden/xargs (sehr nützlich für die Pfade/Dateinamen mit Leerzeichen), und Sie haben zu entkommen das capturing Klammern, weil die shell (gleich in die sudo-s Beispiel)