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,