¿Por qué xargs elimina las comillas del texto de entrada?
Aquí hay un ejemplo simplificado:
echo "/Place/='http://www.google.com'" | xargs echo
salidas
/Place/=http://www.google.com
¿Hay alguna forma de solucionar esto? (Xargs -0 no me ayuda)
linux
text-processing
xargs
ddario
fuente
fuente

xargstrata las comillas y las barras invertidas especialmente como parte de la especificación . Publica lo que estás intentando hacer en suxargslugar.xargs -0funciona para mí aquí ... ¿Por qué no te ayuda?Respuestas:
Del
xargsmanual:Esto significa que puede escapar de las comillas si las comillas se citan a sí mismas:
funcionará pero
echo /Place/=\'http://www.google.com\' | xargs echono lo hará.fuente
"/Place/='http://www.google.com'", ¿cómo puedo escapar de él correctamente?si quieres
xargsa ignorar las cotizaciones uno de los buenos soultion puede ser el uso dexargsla bandera xargs -0He comprobado en un sistema GNU que establecer el delimitador en un valor específico (como una nueva línea) con la
-dopción (y no solo-0) también haría quexargsno se trataran las comillas, etc. especialmente:fuente
En su lugar, podría usar GNU Parallel:
Entonces no tiene que hacer la cita usted mismo.
Más información: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
fuente
Encontré otra solución en la página de manual: especifique explícitamente que el delimitador sea '\ n'. Esto desactiva el manejo especial de las cotizaciones:
Asi que,
salidas
fuente
xargso compatibleksh93$'...'operador de citas que no se encuentra en todas las implementaciones de shell.Encontré otra solución aquí /programming//a/17468560/1795821 que sugiere usar
sedpara escapar de las comillas.Por ejemplo:
fuente