Inhalt einer Datei durch Shell-Skript ändern

8

Ich habe eine Anforderung, wo in ich den Inhalt einer Datei sagen muss xyz.cfg. Die Datei enthält Werte wie:

%Vor%

Ich möchte diesen Inhalt bei Bedarf durch ein Shell-Skript ändern und die Datei speichern. Geänderter Inhalt kann wie folgt aussehen:

%Vor%

Wie kann ich dies erreichen, indem ich ein Shell-Skript verwende, indem ich Benutzereingaben mache oder auf andere Weise?

    
user2031888 01.02.2013, 09:49
quelle

3 Antworten

23

Wie wäre es mit etwas wie:

%Vor%

Dabei sind , und die Argumente, die an das Skript übergeben werden. Speichern Sie eine Datei wie script.sh und stellen Sie sicher, dass sie mit chmod +x script.sh ausführbar ist. Dann können Sie sie wie folgt ausführen:

%Vor%

Dies gibt Ihnen die grundlegende Struktur, aber Sie sollten über die Validierung von Eingabe ect nachdenken.

    
Chris Seymour 01.02.2013, 10:04
quelle
8

*

%Vor%

*

Ich hoffe, dass dies für Anfänger einfacher zu verstehen ist

    
Iurii 17.02.2015 10:27
quelle
7
%Vor%

Bearbeiten Sie filename.txt direkt und ändern Sie das Wort "etwas" in "anderes"

Ich denke, ich könnte eine GNU-Erweiterung sein, aber wenn es für Sie in Ordnung ist, können Sie sie über find, xargs usw. hinzufügen.

Wenn Sie es in einem Shell-Skript ändern möchten, können Sie Argumente in der Befehlszeile verwenden und auf sie durch die Nummer verweisen, z. B. $ 1

Bearbeiten:

Laut meinem Kommentar ist sudo_O's Antwort genau das Beispiel, das Sie wollen. Was ich hinzufügen werde ist, dass es üblich ist, dass Sie solche Übereinstimmungen mit mehreren Dateien, Unterverzeichnissen usw. machen wollen, also lernen Sie find / xargs kennen, und Sie können beide kombinieren. Ein einfaches Beispiel für das Ändern des Subnetzes in einer Gruppe von .cfg-Dateien könnte sein:

%Vor%

Beachten Sie, dass die Argumente -print0 / -0 args nach / xargs suchen (sehr nützlich für Pfade / Dateinamen mit Leerzeichen), und dass Sie wegen der Shell die Fangklammern verlassen müssen (wie in sudos Beispiel)

    
herdingofthecats 01.02.2013 09:58
quelle

Tags und Links