Existe-t-il un moyen de commenter / de commenter un script shell / config / ruby en ligne de commande?
par exemple:
$ comment 14-18 bla.conf
$ uncomment 14-18 bla.conf
cela ajouterait ou supprimerait la #
connexion bla.conf
en ligne 14
à 18
. Normalement, je l’utilise sed
, mais je dois connaître le contenu de ces lignes, puis effectuer une opération de recherche / remplacement, ce qui donnerait un résultat erroné s’il ya plus d’une aiguille (et nous ne voulons que remplacer le N-ème une).
shell-script
text-processing
Kokizzu
la source
la source
sed
,perl
etc. Plus précisément A par terdon!Réponses:
Pour commenter les lignes 2 à 4 de bla.conf:
Pour faire la commande que vous vouliez, il suffit de mettre ce qui précède dans un script shell appelé comment:
Ce script est utilisé de la même façon que le vôtre, sauf que les première et dernière lignes doivent être séparées par une virgule plutôt que par un tiret. Par exemple:
Une commande de suppression de commentaire peut être créée de manière analogue.
Fonctionnalité avancée
sed
La sélection de ligne de est assez puissante. En plus de spécifier la première et la dernière ligne par numéro, il est également possible de les spécifier par une expression régulière. Donc, si vous voulez commander toutes les lignes de celle qui contientfoo
à celle qui contientbar
, utilisez:Systèmes BSD (OSX)
Avec BSD sed, l'
-i
option nécessite un argument, même s'il ne s'agit que d'une chaîne vide. Ainsi, par exemple, remplacez la commande supérieure ci-dessus par:Et, remplacez la commande dans le script par:
la source
'
après l'-i
option est-il intentionnel? Je n'ai pas besoin d'euxAvec GNU sed (pour remplacer les fichiers en place avec l’
-i
option):la source
Vous pouvez utiliser Vim en mode Ex:
g
regex globals
remplacerx
sauver et fermerla source
Vous pouvez créer un fichier bash avec des fonctions pour le réutiliser dans vos projets.
la source