Per commentare le righe da 2 a 4 di bla.conf:
sed -i '2,4 s/^/#/' bla.conf
Per eseguire il comando desiderato, basta inserire quanto sopra in uno script di shell chiamato commento:
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
Questo script viene utilizzato come il tuo, ad eccezione del fatto che la prima e l'ultima riga devono essere separate da una virgola anziché da un trattino. Per esempio:
comment 2,4 bla.conf
Un comando di commento può essere creato in modo analogo.
Funzionalità avanzata
sed
La selezione della linea è piuttosto potente. Oltre a specificare la prima e l'ultima riga per numero, è anche possibile specificarle con una regex. Quindi, se vuoi comandare tutte le righe da quella che contiene foo
a quella che contiene bar
, usa:
comment '/foo/,/bar/' bla.conf
Sistemi BSD (OSX)
Con BSD sed, l' -i
opzione ha bisogno di un argomento anche se è solo una stringa vuota. Pertanto, ad esempio, sostituire il comando superiore sopra con:
sed -i '' '2,4 s/^/#/' bla.conf
E, sostituisci il comando nello script con:
sed -i '' "$1"' s/^/#/' "$2"
sed
,perl
ecc In particolare la A da terdon!