尝试做类似的事情:
# redis-cli keys "resque:lock:*" |xargs -0 redis-cli del
xargs: argument line too long
解决这个问题的最佳方法是什么?
答案 0 :(得分:4)
摆脱-0
。我不熟悉redis,但据我所知redis-cli keys
不使用NUL分隔符。
没有它barfs的原因是它处理引号的方式。来自man xargs
:
xargs 从标准输入中读取项目,由空格分隔(可以使用双引号或单引号或反斜杠保护)或换行符,并执行命令( default是/ bin / echo)一次或多次使用任何initial-arguments后跟从标准输入读取的项。标准输入上的空行将被忽略。
试试xargs -d '\n'
。这将禁用xarg的“智能”报价处理,并告诉它只是逐行读取参数。