Вы используете флаг -0
для xargs
, который говорит, что ваши элементы ввода заканчиваются нулевым символом (ASCII 0), а не пробелом. Вряд ли команда redis-cli
выводит ключи в этом формате. На самом деле, кажется, что выводит один ключ / строку, например:
# redis-cli keys "*"
_tooz_group:central-global
_tooz_beats:38225c46-7ed8-4c2a-b1eb-6400d0f99004
_tooz_beats:bea903f7-ab5d-4503-be19-f2029beece93
_tooz_beats:bd859c91-0245-45cf-a289-23fc25998e97
_tooz_beats:04528af5-dd97-41af-87a6-d7dc0c0d9f5d
_tooz_beats:974b9d9d-86ff-457e-9a5c-e857ec12a915
_tooz_beats:a55cfe65-f344-4ed4-9b9f-a0ace4d8f6d3
Если вы уроните -0
из вашего xargs
вызова, он должен работать
штраф:
# redis-cli keys "*" | xargs -I% redis-cli get %
Если у вас есть ключи, содержащие пробелы, это не сработает (потому что
xargs
ожидает, что ваши входные данные будут разделены пробелами). В этом
В этом случае вы можете явно установить разделитель на \n
:
# redis-cli keys "*" | xargs --delimiter '\n' -I% redis-cli get %