Para comentar as linhas 2 a 4 do arquivo bla.conf:
sed -i '2,4 s/^/#/' bla.conf
Para fazer o comando que você queria, basta colocar o acima em um script de shell chamado comment:
#!/bin/sh
sed -i "$1"' s/^/#/' "$2"
Esse script é usado da mesma maneira que o seu, com a exceção de que a primeira e a última linhas devem ser separadas por uma vírgula, e não por um traço. Por exemplo:
comment 2,4 bla.conf
Um comando de comentário pode ser criado analogamente.
Recurso avançado
A seleção da linha de sed
é bastante poderosa. Além de especificar as primeiras e últimas linhas por número, também é possível especificá-las por um regex. Então, se você quiser comandar todas as linhas daquele contendo foo
para o contendo bar
, use:
comment '/foo/,/bar/' bla.conf
Sistemas BSD (OSX)
Com o BSD sed, a opção -i
precisa de um argumento, mesmo que seja apenas uma string vazia. Assim, por exemplo, substitua o comando superior acima por:
sed -i '' '2,4 s/^/#/' bla.conf
E substitua o comando no script por:
sed -i '' "$1"' s/^/#/' "$2"