Как получить значения всех ключей в Memcached

В комментариях к одной из статей на «Хабре» привели однострочник для командной строки, чтобы вывести содержимое всех ключего локального memcached, я его прямо там причесал, но подумал, что он может мне и самому в будущем пригодиться. Переношу сюда:
nc localhost 11211 <<<"stats items" | awk -F: '/STAT items:[0-9]+/{if (!a[$2]++) print $2}' |
xargs -I{} echo 'stats cachedump {} 100' | nc localhost 11211 | awk '/ITEM/{print $2}' | xargs -n1 echo get |
nc localhost 11211
Без использования awk:
nc localhost 11211 <<<"stats items" | sed -n '/STAT/{s/[^:]*:\([^:]*\).*/stats cachedump \1 100/;p}' | sort -u |
nc localhost 11211 | sed -n '/ITEM/{s/[^ ]* \([^ ]*\) .*/get \1/;p}' | nc localhost 11211
Без использования awk и sed:
nc localhost 11211 <<<"stats items" | grep -Po '(?<=STAT items:)\d+' | sort -u |
xargs -I. echo stats cachedump . 100 | nc localhost 11211 | grep -oP '(?<=ITEM )\S*' |
xargs -n1 echo get | nc localhost 11211
12 февраля 2014 09:53

Akademic (akademic.name)
12 февраля 2014, 11:00

Без использования awk, это чисто спортивный интерес человека, написавшего шахматы на sed?
Или есть объективные причины усложнять?

Евгений Степанищев (bolknote.ru)
12 февраля 2014, 11:12, ответ предназначен Akademic (akademic.name):

Ну, там попросили без awk, а sed у человека использовался. Кроме того, там ничего сложного нет вообще, две команды простые, одна из них — вывод в поток.

Chibiko (инкогнито)
16 июня 2015, 18:34

А как это в переменную засунуть?

bolknote.ru (bolknote.ru)
16 июня 2015, 21:45, ответ предназначен Chibiko

VAR=$(…)

bolknote.ru (bolknote.ru)
12 января 2016, 12:55

100 в коде (stats cachedump {} 100) — это ограничение по выдаваемой этой командой порцией ключей, чтобы отключить ограничение, надо поставить 0, но и в этом случае оно будет ограничено по размеру — ≈1—2 мегабайта.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)