perl -p -i -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
Si la ligne ne pourrait pas finir dans le ;
, utilisez plutôt:
perl -p -i -e 's%^(include /etc/nginx/https.include;.*)$%#$1%' /etc/nginx/ap-servers.include
Si vous voulez conserver le fichier d'origine, ajoutez une extension de sauvegarde après -i
:
perl -p -i.bak -e 's%^(include /etc/nginx/https.include;)$%#$1%' /etc/nginx/ap-servers.include
Maintenant, en expliquant. Le drapeau -p
signifie remplacer en place. Toutes les lignes du fichier seront ajoutées à l'expression et le résultat sera utilisé comme remplacement. L'indicateur -i
indique l'extension du fichier de sauvegarde. En l'utilisant sans rien, vous évitez la génération de sauvegardes. Le -e
indique à Perl d'obtenir le paramètre suivant en tant qu'expression à exécuter. L'expression est maintenant s%something%other%
. J'utilise %
au lieu du /
plus traditionnel pour éviter d'avoir à échapper aux barres obliques du chemin. J'utilise des parenthèses dans l'expression et $1
dans l'expression substituée pour la sécurité - si vous changez un, l'autre suivra. Ainsi, %#$1%
est en fait le deuxième %
de s
, suivi du #
, désiré indiquant le motif entre parenthèses, et le dernier %
de s
.
HTH. MAIN.
Ceci est vraiment plus approprié à serverfault.com, à mon humble avis. –
Je ne vois pas pourquoi cela est approprié pour serverfault.Cela ne semble pas avoir de rapport avec les serveurs. Il appartient au super-utilisateur. Voter pour fermer en tant que tel. – rmeador
/bin/sh ou bash ou csh ou tout autre shell sont des langages complets Turing. Pourquoi ne pensez-vous pas que "Comment atteindre X dans la langue Y?" appartient à StackOverflow? – dmckee