Mengapa xarg mengutip tanda kutip dari teks input?
Ini adalah contoh sederhana:
echo "/Place/='http://www.google.com'" | xargs echo
output
/Place/=http://www.google.com
Apakah ada cara untuk mengatasi ini? (xargs -0 tidak membantu saya)
linux
text-processing
xargs
ddario
sumber
sumber
xargs
memperlakukan penawaran dan garis miring terbalik khusus sebagai bagian dari spesifikasi . Poskan apa yang ingin Anda lakukanxargs
.xargs -0
bekerja untuk saya di sini ... Mengapa itu tidak membantu Anda?Jawaban:
Dari
xargs
manual:Ini berarti Anda dapat menghindari tanda kutip jika tanda kutip dikutip sendiri:
akan bekerja tetapi
echo /Place/=\'http://www.google.com\' | xargs echo
tidak akan.sumber
"/Place/='http://www.google.com'"
, bagaimana saya bisa menghindarinya?jika Anda ingin
xargs
untuk mengabaikan tanda kutip salah satu soultion baik dapat penggunaanxargs
bendera xargs -0Saya telah memeriksa sistem GNU yang mengatur pembatas ke nilai tertentu (seperti baris baru) dengan
-d
opsi (dan bukan hanya-0
) juga akan menyebabkanxargs
tidak memperlakukan tanda kutip dll khusus:sumber
Anda bisa menggunakan GNU Parallel sebagai gantinya:
Maka Anda tidak perlu melakukan kutipan sendiri.
Pelajari lebih lanjut: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
sumber
Saya menemukan solusi lain di halaman manual: tentukan secara spesifik pembatas sebagai '\ n'. Ini mematikan penanganan khusus untuk kutipan:
Begitu,
output
sumber
xargs
atau yang kompatibelksh93
$'...'
operator mengutip yang tidak ditemukan dalam setiap implementasi shell.Saya menemukan solusi lain di sini /programming//a/17468560/1795821 yang menyarankan penggunaan
sed
untuk menghindari kutip.Sebagai contoh:
sumber