Ver Indice Geral da Apostila de SED
Substituindo Palavras
O SED é muito usado para substituir palavras, por isso vou começar falando disso.
Para ficar mais fácil entender os exemplos crie um arquivo texto chamado: "mensagem", contendo:
| mensagem |
28-05-2008
Olá,
Estarei em casa semana que vem, no dia 4.
pq vc ñ vem para gente fazer aquele trabalho que precisamos fazer?
Hj estava passeando com meu cachorro e veio um cara e disse:
- Oi! Seu cachorrinho tem telefone?
Que coisa tosca meu! Você ñ acha? ñ sei o que esse povo tem na cabeça.
Abraços
|
Um texto bem simples apenas para ilustrar alguns possíveis problemas e como corrigí-los
Vamos pedir ao SED substituir os "ñ" por "não" corrigindo a abreviação.
O comando para substituição de palavras no SED é:
s/substituir/substituto/
| Digite no Terminal |
sed s/ñ/não/ mensagem
|
| Mostrará na tela |
28-05-2008
Olá,
Estarei em casa semana que vem, no dia 4.
pq vc não vem para gente fazer aquele trabalho que precisamos fazer?
Hj estava passeando com meu cachorro e veio um cara e disse:
- Oi! Seu cachorrinho tem telefone?
Que coisa tosca meu! Você não acha? ñ sei o que esse povo tem na cabeça.
Abraços
|
Coloquei a mensagem inteira, mas daqui pra frente colocarei só as linhas modificadas pelos SED, ou só algumas delas. Assim fica mais fácil ver as coisas.
Repare algumas cosias:
1. Eu chamei o sed com o comando "sed s/ñ/não/ mensagem", "mensagem" é o nome do arquivo que desejamos que o SED leia.
2. O SED trocou "ñ" por "não" e mostrou a mensagem na tela, ele não gravou isso no arquivo ( depois veremos como grava no arquivo ).
3. Na linha "Que coisa tosca meu! Você não acha? ñ sei o que esse povo tem na cabeça." o SED não trocou todos "ñ" por "não". Veja que continua com "ñ sei o que esse povo tem na cabeça"
Porque isso acontece?
O comando s/palavra1/palavra2/ substitui somente a primeira palavra encontrada na linha.
- Como assim? Então como seu faço se precisar trocar várias palavras que estejam erradas na mesma linha? Não tem como?
Tem sim, mostrei o comando dessa forma justamente para você ficar atento ao que o SED faz nesse caso.
Para alterar todas palavras usamos o comando:
s/substituir/substituto/g
- Mas é a mesma coisa! - você diz
É quase a mesma coisa, por isso eu quis mostrar as duas formas, para ficar clara a diferença.
A simples diferença é o "g" do final, o "g" indica que é para ser trocado a palavra sempre que for encontrada, e não apenas na primeira vez.
| Digite no Terminal |
sed s/ñ/não/g mensagem
|
| Mostrará na tela |
...
pq vc não vem para gente fazer aquele trabalho que precisamos fazer?
...
Que coisa tosca meu! Você não acha? não sei o que esse povo tem na cabeça.
Abraços
|
Viu a diferença? Simples, não é?
Nota: 9
Postado em: 2008-05-29
Ver Indice Geral da Apostila de SED