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$