Para comentar las líneas 2 a 4 de bla.conf:
sed -i '2,4 s/^/#/' bla.conf
Para hacer el comando que desea, simplemente coloque lo anterior en un script de shell llamado comentario:
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
Este script se usa igual que el suyo, con la excepción de que la primera y la última línea deben estar separadas por una coma en lugar de un guión. Por ejemplo:
comment 2,4 bla.conf
Se puede crear un comando sin comentar de forma análoga.
Característica avanzada
sed
La selección de línea es bastante poderosa. Además de especificar la primera y la última línea por número, también es posible especificarlas mediante una expresión regular. Entonces, si desea ordenar todas las líneas desde la que contiene foo
a la que contiene bar
, use:
comment '/foo/,/bar/' bla.conf
Sistemas BSD (OSX)
Con BSD sed, la -i
opción necesita un argumento incluso si es solo una cadena vacía. Así, por ejemplo, reemplace el comando superior anterior con:
sed -i '' '2,4 s/^/#/' bla.conf
Y, reemplace el comando en el script con:
sed -i '' "$1"' s/^/#/' "$2"
sed
,perl
, etc. Específicamente la A por terdon!