Com lxc list --format=json
, você obtém um documento JSON com muitas informações sobre todos os vários contêineres disponíveis.
lxc list mycontainer --format=json
limita isso aos contêineres cujos nomes começam com a string mycontainer
(use 'mycontainer$'
para uma correspondência exata).
A análise de JSON é geralmente mais segura do que a análise de um documento de texto que é quase de forma livre.
Para extrair os nomes dos instantâneos usando jq
:
$ lxc list mycontainer --format=json | jq -r '.[].snapshots[].name'
Isso lhe dará uma lista como
2017-04-29-mycontainer
2017-04-30-mycontainer
2017-05-01-mycontainer
Para colocar isso em uma matriz em bash
:
snaps=( $( lxc list mycontainer --format=json | jq -r '.[].snapshots[].name' ) )
Esteja ciente de que, se você fizer isso, os nomes das capturas instantâneas com caracteres especiais para o shell ( *?[
) farão com que a globalização do nome do arquivo aconteça. Você pode evitar isso com set -f
antes do comando (e set +f
depois).
Se você quiser apenas fazer um loop pelos instantâneos:
lxc list mycontainer --format=json | jq -r '.[].snapshots[].name' |
while read snap; do
# do something with "$snap"
done