Для этого может использоваться команда tail
. Он дает вам последние несколько (по умолчанию 10) строк ввода в качестве вывода (его «хвост»).
С помощью флага -n
вы можете точно указать, какую часть хвоста вы хотите иметь:
aws ec2 ... | sort | tail -n 1
Чтобы убедиться, что он соответствует правильному формату, вы можете сделать
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
Если вы хотите только последний бит последней строки, используйте cut
, чтобы вырезать его:
line="$( aws ec2 ... | sort | tail -n 1 | cut -d ' ' -f 2 )"
Бит -d '' -f 2
говорит "использовать пробел в качестве разделителя полей и дайте мне второе поле ".
Тогда и регулярное выражение станет короче:
if [[ ! "$line" =~ ^ami-[0-9a-z]{8}$ ]]; then
echo "bad string"
exit 1
fi