Necesito pasar un texto que incluya espacios en blanco y otros caracteres a un script que está siendo ejecutado por GNU Parallel.Cómo pasar argumentos cotizados a GNU Parallel
Aquí es un ejemplo muy sencillo:
$ seq 1 3 | parallel echo "Quoted ' (text)"
El resultado del ejemplo sería la siguiente:
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
sh: -c: line 0: unexpected EOF while looking for matching `''
sh: -c: line 1: syntax error: unexpected end of file
Sin embargo, si hago esto todo funciona:
seq 1 3 | parallel echo "\"Quoted ' (text)\""
Sucede para ejecutar esto desde una secuencia de comandos de Python, por lo que antes de pasar los argumentos, los estoy citando en el script como th es:
args = ["Some arg", "Another arg", "etc."]
args = ' '.join(pipes.quote(pipes.quote(arg)) for arg in args)
Pero no parece una solución limpia.
¿Alguien sabe de una mejor manera de pasar argumentos a GNU Parallel?
Gracias!
'no es una solución limpia', pero ¿funciona? Buena suerte. – shellter