O comando tail
pode ser usado para isso. Ele fornece as últimas linhas de entrada (10 por padrão) como saída (a "cauda" dele).
Com o sinal -n
, você pode especificar exatamente quanto da cauda gostaria de ter:
aws ec2 ... | sort | tail -n 1
Para verificar se segue o formato correto, você pode fazer
line="$( aws ec2 ... | sort | tail -n 1 )"
if [[ ! "$line" =~ ^amzn-ami-[0-9]{4}\.[0-9]{2}\.[a-z]-amazon-ecs-optimized\ ami-[0-9a-z]{8}$ ]]; then
echo "bad string"
exit 1
fi
Se você quiser apenas o último bit da última linha, use cut
para recortar:
line="$( aws ec2 ... | sort | tail -n 1 | cut -d ' ' -f 2 )"
O -d ' ' -f 2
bit diz "use espaço como delimitador de campo e forneça o segundo campo".
Em seguida, a expressão regular também se torna mais curta:
if [[ ! "$line" =~ ^ami-[0-9a-z]{8}$ ]]; then
echo "bad string"
exit 1
fi