Eliminar tildes con sed o iconv (GNU/Linux)

A veces resulta útil eliminar las tildes de un texto o palabras. Para ello podemos utilizar sed, que suele estar ya instalado en GNU/Linux.

Basta crear un archivo como el siguiente...

#!/bin/sed -f

# Este programa elimina las tildes.
#
# Ejemplo de uso
# $ echo 'Bajó del árbol.' | ./eliminar-tildes.sed

# En mayúscula
s/Á/A/g
s/É/E/g
s/Í/I/g
s/Ó/O/g
s/Ú/U/g

#s/Ñ/N/g     # Descomenta para sustituir la eñe

# En minúscula
s/á/a/g
s/é/e/g
s/í/i/g
s/ó/o/g
s/ú/u/g

#s/ñ/n/g     # Descomenta para sustituir la eñe

Darle permisos de ejecución (sudo chmod u+x eliminar-tildes.sed) y, luego, ejecutar algo como echo 'Bajó del árbol' | ./eliminar-tildes.sed, que le quitará las tildes a la frase, quedando así: «Bajo del arbol». Podemos pasarle cualquier texto al programa mediante una tubería. Así pues, cat texto.txt | ./eliminar-tildes.sed le quitaría las tildes al texto del archivo texto.txt.

Mi motivación para crear el programa era quitarles las tildes a los textos para poner un ejercicio de aprendizaje de español que consiste en acentuar palabras. Si lo haces por otro motivo, es posible que te interese también quitarle la virgulilla a la eñe. En ese caso, descomenta las líneas donde hago la sustitución de la eñe.

Otra opción es convertir el texto a ASCII haciendo una transliteración con el programa iconv, que también suele estar instalado en GNU/Linux. Así, para convertir un texto a ASCII bastaría con ejecutar algo como iconv -f utf-8 -t ascii//translit texto.txt o echo 'árbol y eñe' | iconv -f utf-8 -t ascii//translit.

Numerar líneas de poema, cada verso y cada 5 versos

Pocas veces están ya numerados los versos de los poemas que encontramos en Internet. Para la lectura no es necesaria la numeración, pero cuando se realizan análisis y comentarios de un poema largo, esta resulta muy útil. En este artículo enseño cómo numerar un archivo de texto (en el que se supone que habremos pegado el poema copiado de Internet).

Como archivo de ejemplo uso la Canción del pirata. Si queremos numerar todas sus líneas, basta con ejecutar la siguiente instrucción:

$ nl Canción-del-pirata.txt
     1  Con diez cañones por banda,
     2  viento en popa, á toda vela,
     3  no corta el mar, sino vuela,
     4  mi velero bergantín:
     5  Bajel pirata que llaman,
     6  por su bravura, el Temido,
     7  en todo mar conocido,
     8  del uno al otro confin.

     9  La luna en el mar riela,
 [...]
Continúa leyendo Numerar líneas de poema, cada verso y cada 5 versos