Pour commenter les lignes 2 à 4 de bla.conf:
sed -i '2,4 s/^/#/' bla.conf
Pour faire la commande que vous vouliez, il suffit de mettre ce qui précède dans un script shell appelé comment:
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
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:
comment 2,4 bla.conf
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 contient foo
à celle qui contient bar
, utilisez:
comment '/foo/,/bar/' bla.conf
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:
sed -i '' '2,4 s/^/#/' bla.conf
Et, remplacez la commande dans le script par:
sed -i '' "$1"' s/^/#/' "$2"
sed
,perl
etc. Plus précisément A par terdon!