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