次のようなことをしようとしています:
# redis-cli keys "resque:lock:*" |xargs -0 redis-cli del
xargs: argument line too long
これを回避するための最良の方法は何ですか?
を取り除き-0
ます。私はredisに精通していませんが、私が知るredis-cli keys
限り、NULセパレーターを使用していません。
それなしでバーフする理由は、それが引用符を処理する方法のためです。差出人man xargs
:
xargsは、空白(二重引用符または一重引用符またはバックスラッシュで保護できます)または改行で区切られた標準入力から項目を読み取り、コマンド(デフォルトは/ bin / echo)を1回以上実行し、その後に任意の初期引数を付けます標準入力から読み取った項目による。標準入力の空白行は無視されます。
試してみてくださいxargs -d '\n'
。これにより、xargの「スマートな」引用符処理が無効になり、引数を1行ずつ読み取るように指示されます。