xargsが入力から引用符を削除するのはなぜですか?

xargsが入力から引用符を削除するのはなぜですか?

xargsが入力テキストから引用符を削除するのはなぜですか?

以下は簡単な例です。

echo "/Place/='http://www.google.com'" | xargs echo

出力

/Place/=http://www.google.com

この問題を解決する方法はありますか? (xargs -0は私には役に立ちませんでした)

ベストアンサー1

欲しいxargsなら引用符を無視良い魂の一つは、xargsロゴを使用することですxargs -0

マニュアルページオプションから直接

オプション-0、--null

入力は空白ではなくヌル文字で終わり、引用符とバックスラッシュは特別ではありません(各文字は文字通り使用されます)。他のパラメーターと同様に処理されるファイル終了文字列を無効にします。入力にスペース、引用符、またはバックスラッシュを含めることができる場合に便利です。 GNU find -print0オプションは、このパターンに適した入力を生成します。

-dオプションを使用するだけでなく、区切り文字を特定の値(newlineなど-0)に設定すると、引用符xargsなどが特別に処理されないGNUシステムを特定しました。

-bash-4.3$ { echo "a'b'c"; echo d; } | xargs -d$'\n' echo
a'b'c d
-bash-4.3$ rpm -qf "$(which xargs)"
findutils-4.6.0.0.99.11a05-alt1.x86_64
-bash-4.3$ { echo "a'b'c"; echo d; } | xargs echo
abc d
-bash-4.3$ 

おすすめ記事