¿Hay alguna manera de comentar / descomentar un script shell / config / ruby usando la línea de comando?
por ejemplo:
$ comment 14-18 bla.conf
$ uncomment 14-18 bla.conf
esto agregaría o eliminaría el #inicio de sesión bla.confen línea 14para 18. Normalmente lo uso sed, pero debo conocer el contenido de esas líneas y luego hacer una operación de búsqueda y reemplazo, y eso daría un resultado incorrecto cuando hay más de una aguja (y solo queremos reemplazar la N-ésima uno).
shell-script
text-processing
Kokizzu
fuente
fuente

sed,perl, etc. Específicamente la A por terdon!Respuestas:
Para comentar las líneas 2 a 4 de bla.conf:
Para hacer el comando que desea, simplemente coloque lo anterior en un script de shell llamado comentario:
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:
Se puede crear un comando sin comentar de forma análoga.
Característica avanzada
sedLa 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 contienefooa la que contienebar, use:Sistemas BSD (OSX)
Con BSD sed, la
-iopción necesita un argumento incluso si es solo una cadena vacía. Así, por ejemplo, reemplace el comando superior anterior con:Y, reemplace el comando en el script con:
fuente
'después de la-iopción es intencional? No los necesitaba.Con GNU sed (para reemplazar los archivos en su lugar con la
-iopción):fuente
Puede usar Vim en modo Ex:
gexpresión regular globalssustituirxguardar y cerrarfuente
Puede crear un bash_file con funciones para reutilizarlo en sus proyectos
fuente