você está aqui: Home  → Arquivo de Mensagens

Ebook Gratuito: Dá para fazer em Shell?, com o Prof. Julio Neves

SED - Mais alguns comandos úteis

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 29 de Abril de 1999

O Arnaldo Mandel, da USP, me enviou ontem um lembrete muito importante:


Nunca redirecione a saída para o próprio arquivo. Por exemplo,

sed 1d teste > teste

apagaria o conteúdo do arquivo teste.

Para usar o sed na edição de um arquivo, é preciso gravar um temporário e depois jogar em cima do original:

sed 1d teste > teste.out  && mv teste.out teste

Eu também cometi um erro chamando o SED de "String Editor". O nome correto é "Stream Editor".

Gostaria de agradecer ao Arnaldo por suas correções e sugestões.

A mensagem de hoje também aborda o SED:


Tomando ainda como exemplo o arquivo da mensagem de ontem, se quisermos inserir um espaço em branco nas linhas 3 e 4 basta executar o comando:

sed "3,4s/^/ /" teste

e obtemos o resultado

1
2
 3
 4 
5

Se quisermos substituir os caracteres nas linhas 1 e 2 pela letra x:

sed "1,2s/^./x/" teste

temos então

x
x
3
4
5

Podemos também inserir um caracter nesta mesma posição:

sed "1,2s/^/x/" teste
x1
x2
3
4
5

Para inserir na última posição de cada linha o caracter

sed "s/$/%/" teste
1%
2%
3%
4%
5%

Não esquecer nunca que para salvar o resultado do trabalho devemos fazer o redirecionamento para um arquivo.



Veja a relação completa dos artigos de Rubens Queiroz de Almeida