0

试图做类似的事情:

# redis-cli keys "resque:lock:*" |xargs -0 redis-cli del
xargs: argument line too long

解决此问题的最佳方法是什么?

4

1 回答 1

6

摆脱-0. 我对 redis 不熟悉,但据我所知redis-cli keys,它不使用 NUL 分隔符。

没有它就呕吐的原因是它处理引号的方式。来自man xargs

xargs从标准输入中读取项目,由空格(可以用双引号或单引号或反斜杠保护)或换行符分隔,并执行命令(默认为 /bin/echo)一次或多次,后面跟着任何初始参数通过从标准输入读取的项目。标准输入上的空行被忽略。

试试xargs -d '\n'。这将禁用 xarg 的“智能”引用处理并告诉它逐行读取参数。

于 2012-11-28T01:40:16.230 回答