Line-wrap e caracteres acentuados

Trabalhando na tradução do FAQ do OpenBSD, percebi que essa história de line wrapping em 72 colunas e a substituição de caracteres acentuados pode se tornar um saco. Ora, vamos automatizar, não é mesmo?

Para resolver o dos caracteres acentuados, substituindo “á” por “á” , por exemplo, é muito fácil. Fiz um script com várias chamadas sucessivas ao sed (não muito inteligente e/ou eficiente, mas resolve o problema), assim:

#!/bin/ksh
# Script to swap accentuated chars for its html counterparts
# using sed, brute-force style

cat $1 |

# Uppercase chars
sed 's/Á/\Á/g'   |
sed 's/É/\É/g'   |
sed 's/Í/\Í/g'   |
sed 's/Ó/\Ó/g'   |
sed 's/Ú/\Ú/g'   |

sed 's/Ã/\Ã/g'   |
sed 's/Õ/\Õ/g'   |

sed 's/Â/\Â/g'    |
sed 's/Ê/\Ê/g'    |
sed 's/Ô/\Ô/g'    |

sed 's/À/\À/g'   |
sed 's/Ü/\Ü/g'     |
sed 's/Ç/\Ç/g'   |

# Lowercase chars
sed 's/á/\á/g'   |
sed 's/é/\é/g'   |
sed 's/í/\í/g'   |
sed 's/ó/\ó/g'   |
sed 's/ú/\ú/g'   |

sed 's/ã/\ã/g'   |
sed 's/õ/\õ/g'   |

sed 's/â/\â/g'    |
sed 's/ê/\ê/g'    |
sed 's/ô/\ô/g'    |

sed 's/à/\à/g'   |
sed 's/ü/\ü/g'     |
sed 's/ç/\ç/g'

O line wrapping foi um tanto quanto mais fácil, já que o Joseph Myers fez uma versão interessante de seu programa wrap em C para 72 colunas (por padrão, o valor é customizável), o que resolve o problema sem esforço. O link está bem aqui: http://www.myersdaily.org/joseph/unix/wrap.html. Ele também explica o programa em detalhe, caso estejam a fim de ler um pouco. Finalmente, um exemplo de como usá-lo:

$ ./wrap < INFILE > OUTFILE

Cheers!

Etiquetado

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: