Aquí la solución, primero el comando que me hizo ver la luz:
$ echo $(printf '%q' $line)
La función mostrada arriba escapa todos los caracteres especiales. Ahora sólo me quedaba depurar las líneas del archivo y ejecutar un comando para cada una de ellas:
#!/bin/bash
cat PROBLEMATIC_FILE |
while read line; do
echo $(printf '%q' $line) |
awk -v _SQ="'" '{
# ... process
print $0
}'
done
Hola, excelente publicación, igual tenía el mismo problema.
ResponderEliminarAhora el problema que tengo es que trato de exportarlo en un script en perl y el %q no lo interpreta, en bash si lo interpreta bien pero cuando lo hago en perl me pone el siguiente error: "printf: 1: %q: invalid directive". Si alguien tiene la solución o si la encuentro pondré el comment. Saludos!!
Niko, si compartes un fragmento del código quizás podría ayudarte... Aunque ya es posible que le hayas dado la vuelta.
ResponderEliminarUn saludo y gracias por tus comentarios,