De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.


Script para remover acentos de documentos

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 26 de Abril de 1997

Todas as dicas enviadas através desta lista são geradas originalmente com todos os acentos. Para facilitar a vida de quem lê mail com programas que não oferecem suporte a caracteres acentuados, eu crio uma outra versão do documento, sem conter os acentos. A dica de hoje, visto abordar acentuação obviamente não pode ser veiculada sem os acentos.

Para realizar esta conversão, foi criado um shell script que, utilizando o comando sed para efetuar a troca dos caracteres.

Este script pode ser utilizado para várias outras finalidades. Nós faziamos antigamente, quando não possuímos conexão rápida com a Internet, um mirror de alguns servidores Web que julgavamos úteis. Após a transferência das páginas via FTP (ainda não existiam ferramentas como wget e outros; talvez até já existissem, mas não as conheciamos) era rodado um shell script que convertia tudo que fosse http://www.site.edu para http://www.unicamp.br. Outra utilização, criar arquivos para processamento pelo programa Ventura Publisher, que convertia algumas marcações de parágrafos em tags para o Ventura. Pode-se até criar um editor HTML, que realiza a expansão de alguns tags em diretivas html.

O script possui dois componentes, um arquivo com os comandos propriamente ditos e um outro com diretivas para o comando sed.

Vamos ao primeiro deles, o script tiraacento:

  #! /bin/sh
  #	
  #	Autor: Queiroz
  #	Data : 11/08/94
  #
  #	Este shell script remove a acentuação de um arquivo 
  #	
  
  # A seguir, a localização do arquivo onde se encontram as diretivas
  # para o comando sed
  
  MACROS=/home/queiroz/bin
  
  # testa se foram fornecidos os arquivos de entrada e saida para
  # o comando. Caso haja erro neste passo emitir a mensagem e encerrar
  # o processamento
  
  if [ $# -lt 2 ]; then
          echo 1>&2 Sintaxe: $0 arquivo_entrada arquivo_saida
          exit 1
  fi
  
  # Atribui à variável infile o primeiro argumento e à variável outfile
  # o segundo argumento
  
  infile=$1
  outfile=$2
  
  # Executa o comando sed para efetuar as substituições
  
  sed -f $MACROS/tiraacento.sed $infile  > $outfile
  

O arquivo tiraacento.sed contém as diretivas para o comando sed. Desta forma o caracter ã será substituído por ~a e assim por diante.= Caso se opte por remover totalmente a acentuação basta substituir s/ã/~a/g por s/ã/a/g. Algumas pessoas preferem desta forma.=

tiraacento.sed

  s/ã/~a/g=
  s/Ã/~A/g=
  s/à/`a/g
  s/À/`A/g
  s/ô/\^o/g
  s/ô/o/g
  s/Õ/~O/g=
  s/é/e'/g
  s/É/E'/g
  s/á/a'/g
  s/ó/o'/g
  s/Á/A'/g
  s/Ó/O'/g
  s/ç/,c/g
  s/Ç/,C/g
  s/ê/\^e/g
  s/Ê/\^E/g
  s/ú/u'/g
  s/Ú/U'/g
  s/â/a\^/g
  s/Â/\^A/g
  s/í/i'/g
  s/Í/I'/g
  s/Ü/U/g
  s/ü/u/g

Adicionar comentário

* Campos obrigatórios
5000
Powered by Commentics

Comentários

Nenhum comentário ainda. Seja o primeiro!


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