Por que xargs retira aspas do texto de entrada?
Aqui está um exemplo simplificado:
echo "/Place/='http://www.google.com'" | xargs echo
saídas
/Place/=http://www.google.com
Existe alguma maneira de contornar isso? (xargs -0 não me ajuda)
linux
text-processing
xargs
ddario
fonte
fonte
xargs
trata aspas e barras invertidas especialmente como parte das especificações . Poste o que você está tentando fazerxargs
.xargs -0
funciona para mim aqui ... Por que não ajuda?Respostas:
Do
xargs
manual:Isso significa que você pode escapar de aspas se as aspas forem citadas:
vai funcionar, mas
echo /Place/=\'http://www.google.com\' | xargs echo
não vai.fonte
"/Place/='http://www.google.com'"
, como posso escapar corretamente dele?se você quiser
xargs
para ignorar cita um dos bons soultion pode ser o uso dexargs
bandeira xargs -0Eu verifiquei em um sistema GNU que definir o delimitador para um valor específico (como uma nova linha) com a
-d
opção (e não apenas-0
) também causariaxargs
não tratar as aspas, etc. especialmente:fonte
Você poderia usar o GNU Parallel:
Então você não precisa fazer as citações sozinho.
Saiba mais: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
fonte
Encontrei outra solução na página de manual: especifique explicitamente delimitador como '\ n'. Isso desativa o tratamento especial para aspas:
Tão,
saídas
fonte
xargs
ou compatível #ksh93
$'...'
operador de citação que não é encontrado em todas as implementações de shell.Encontrei outra solução aqui /programming//a/17468560/1795821 que sugere o uso
sed
para escapar de aspas.Por exemplo:
fonte