Moin moin aus dem Norden!
Meine letzten sed-Versuche sind schon ein paar Monate her und im Netz konnte ich bisher keine Antwort auf meine Frage finden.
Ich erstelle mir gerade ein Shell-Skript, in dem ich unter anderem das entkommentieren einer Zeile von einer Konfigurationsdatei einbeinden möchte. Konkret geht es um ein Skrip zur Installation von Nginx.
Manuell klappt das und auch mit grep finde ich die richtige Zeile:
1 | grep cgi.fix_pathinfo=1 /etc/php5/cgi/php.ini |
Meine bisherige Idee (inkl. Sicherheitskopie falls etwas schief läuft) ist folgende:
1 2 3 | cp /etc/php5/cgi/php.ini /etc/php5/cgi/php.ini.sav; sed 's/^; cgi\.fix_pathinfo=1/cgi\.fix_pathinfo=1/' /etc/php5/cgi/php.ini > /etc/php5/cgi/php.ini.new; mv /etc/php5/cgi/php.ini.new /etc/php5/cgi/php.ini |
Meine Frage ist nun ob man mittels sed auch innerhalb einer Datei etwas verändern kann, ohne eine Datei neu anzulegen und anschließend in den Namen der alten Datei umzubenennen. Mein Ziel ist es das Skript so kurz und einfach wie möglich zu halten (die Sicherheitskopie halte ich für einen nötigen zusätzlichen Schritt).
Könnte ich also in einer Datei, die (wiein diesem Falle) knapp 1.000 Zeilen hat diese entsprechende Zeile verändern und wieder in sich selbst schreiben?
Danke für die Antworten und entschudligt, wennn ich mich vielleicht etwas umständlich ausdrücke. Ich bin noch dabei mich auf diesem Gebiet einzuarbeiten.
Grüße, Christian