perl -p -i -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
Wenn die Zeile möglicherweise nicht in der ;
beenden, verwenden Sie stattdessen:
perl -p -i -e 's%^(include /etc/nginx/https.include;.*)$%#$1%' /etc/nginx/ap-servers.include
Wenn Sie die ursprüngliche Datei beibehalten möchten, fügen Sie eine Backup-Erweiterung nach -i
:
perl -p -i.bak -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
Jetzt erklären. Die -p
Flagge bedeutet Ersetzen in-Place. Alle Zeilen der Datei werden dem Ausdruck zugeführt, und das Ergebnis wird als Ersatz verwendet. Das Flag -i
zeigt die Erweiterung der Sicherungsdatei an. Wenn Sie es ohne irgendetwas verwenden, verhindern Sie das Generieren von Backups. Die -e
weist Perl an, den folgenden Parameter als einen auszuführenden Ausdruck zu erhalten.
Jetzt ist der Ausdruck s%something%other%
. Ich benutze %
anstelle der traditionellen /
zu vermeiden, die Schrägstriche des Pfades zu entkommen. Ich verwende Klammern im Ausdruck und $1
im substituierten Ausdruck für die Sicherheit - wenn Sie einen ändern, wird der andere folgen. Somit ist %#$1%
tatsächlich das zweite %
von s
, gefolgt von dem gewünschten , $1
, das das Muster innerhalb der Klammer angibt, und dem letzten %
von s
.
HTH. HAND.
Dies ist wirklich besser geeignet für serverfault.com, imho. –
Ich sehe nicht, warum es für Serverfault geeignet ist.Es scheint nichts mit Servern zu tun zu haben. Es gehört auf Superuser. Wählen, um als solche zu schließen. – rmeador
/bin/sh oder bash oder csh oder eine andere Shell sind Turing vollständige Sprachen. Warum denkst du nicht "Wie erreiche ich X in der Sprache Y?" gehört zu StackOverflow? – dmckee