[FUG-BR] sed

Renato Botelho rbgarga em gmail.com
Terça Agosto 2 22:45:57 BRT 2011


2011/8/2 Wenderson Souza <wendersonsouza at gmail.com>:
> Amigos,
>
> Ja googlei, man sed, etc etc.
>
> Mas estou tendo dificuldades com algo que eu acho até fácil, mas não
> sei o que está havendo.
>
> Preciso remover a primeira linha de um arquivo (dentro de um script
> sh) com o sed.
>
> Sei que fica chato ficar comparando, mas no linux eu usava assim: sed
> -i 1d /meu/arquivo para remover no mesmo arquivo
>
> No FreeBSD vi que tenho que fazer assim: sed -i '1 d' /meu/arquivo
> entre aspas e com espaco entre o 1 e o d
>
>
> O interessante é:
>
> Se eu fizer o comando sem o -i (editar no próprio arquivo) funciona,
> mas ai tenho que jogar o resultado para /meu/arquivo1 e depois dar um
> mv /meu/arquivo1 /meu/arquivo, isso não fica "elegante".
>
> Alguma idéia de como fazer a edição direto no arquivo?

O parâmetro -i no FreeBSD tem um comportamento diferente do
linux, ele exige um parâmetro com a extensão do arquivo de backup.

Como você não quer um backup, deve passar uma string vazia para
ele, desse jeito:

# sed -i '' -e '1d' arquivo

[]s
-- 
Renato Botelho


Mais detalhes sobre a lista de discussão freebsd