Bash script - Zeilen aus einer config datei entfernen
Hallo Zusammen,
ich möchte gerne in einem Bash script einen Befehl einbauen mit dem ich bestimmte Zeilen aus einer config Datei entfernen kann.
Ich habe es bereits getestet, indem ich nur eine Zeile entferne, das hat auch funktioniert.
Aber wie kann ich es nun mit mehreren Zeilen machen ? Ich habe im Netz nichts konkretes gefunden..
Ein Beispiel:
Match User test2
Text aus Zeile 2
Text aus Zeile 3
Text aus Zeile 4
Text aus Zeile 5
Diese Zeilen sollen nun aus der config Datei entfernt werden. Der Rest der config Datei wird, so wie ich es verstanden habe, nun in die test2.txt geschrieben. Also der ganze Inhalt der config Datei, außer die bestimmten Zeilen.
Anschließend wird der Inhalt der test2.txt den Inhalt der config Datei überschreiben.
Und zwar mit
Wie kann nun der Befehl zum entfernen der 5 Zeilen aussehen ? Oder muss ich die Sache ganz anders angehen ?
LG
rOMOP11
ich möchte gerne in einem Bash script einen Befehl einbauen mit dem ich bestimmte Zeilen aus einer config Datei entfernen kann.
Ich habe es bereits getestet, indem ich nur eine Zeile entferne, das hat auch funktioniert.
sed '/Match User test2/d' /etc/ssh/sshd_config > /home/script/test2.txt
Aber wie kann ich es nun mit mehreren Zeilen machen ? Ich habe im Netz nichts konkretes gefunden..
Ein Beispiel:
Match User test2
Text aus Zeile 2
Text aus Zeile 3
Text aus Zeile 4
Text aus Zeile 5
Diese Zeilen sollen nun aus der config Datei entfernt werden. Der Rest der config Datei wird, so wie ich es verstanden habe, nun in die test2.txt geschrieben. Also der ganze Inhalt der config Datei, außer die bestimmten Zeilen.
Anschließend wird der Inhalt der test2.txt den Inhalt der config Datei überschreiben.
Und zwar mit
mv /home/script/test2.txt /etc/ssh/sshd_config
Wie kann nun der Befehl zum entfernen der 5 Zeilen aussehen ? Oder muss ich die Sache ganz anders angehen ?
LG
rOMOP11
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 379879
Url: https://administrator.de/forum/bash-script-zeilen-aus-einer-config-datei-entfernen-379879.html
Ausgedruckt am: 09.04.2025 um 16:04 Uhr
4 Kommentare
Neuester Kommentar

Hi,
Warum überhaupt der Umweg über eine zweite Datei, wenn die zweite Datei ohnehin nicht als Backup genutzt werden soll? Anstatt dass du die Ausgabe in ein zweites Textfile machst und dann mit dieser die sshd_config Datei überschreibst, kannst du auch die Änderung direkt in die Datei schreiben mit dem Parameter -i. Teste das aber vorher auf einem Testsystem und/oder erstelle vorher ein Backup von der sshd_config.
Für fünf Zeilen würd ich einfach fünf sed Befehle machen.
Viel Grüße,
Exception
mv /home/script/test2.txt /etc/ssh/sshd_config
Warum überhaupt der Umweg über eine zweite Datei, wenn die zweite Datei ohnehin nicht als Backup genutzt werden soll? Anstatt dass du die Ausgabe in ein zweites Textfile machst und dann mit dieser die sshd_config Datei überschreibst, kannst du auch die Änderung direkt in die Datei schreiben mit dem Parameter -i. Teste das aber vorher auf einem Testsystem und/oder erstelle vorher ein Backup von der sshd_config.
Aber wie kann ich es nun mit mehreren Zeilen machen ? Ich habe im Netz nichts konkretes gefunden..
Für fünf Zeilen würd ich einfach fünf sed Befehle machen.
Viel Grüße,
Exception