Во-первых, AWS cli предлагает указать формат вывода, поэтому вы можете установить выход text
, а затем заменить новую строку пробелом. Вы можете попробовать
aws ec2 describe-instances --output text --profile test --query 'Reservations[*].[[OwnerId, Instances[*].[InstanceId, InstanceType, State.Name, Platform, Placement.AvailabilityZone, PublicIpAddress, PrivateIpAddress,[Tags[?Key==Name].Value][0][0],[Tags[?Key==Environment].Value][0][0]]]]' --filter --filters Name=instance-state-name,Values=running --output text | tr '\r\n' ' '
Формат вывода текста
Формат текста организует вывод интерфейса командной строки AWS в строки с разделителями табуляции. Он хорошо работает с традиционными текстовыми инструментами Unix, такими как grep, sed и awk, а также с обработкой текста, выполняемой PowerShell.
Формат вывода текста соответствует базовой структуре, показанной ниже. Столбцы отсортированы в алфавитном порядке по соответствующим именам ключей базового объекта JSON.
IDENTIFIER sorted-column1 sorted-column2
IDENTIFIER2 sorted-column1 sorted-column2
, поэтому вы можете использовать конвейер, используя tr '\r\n' ' '
. Или вы можете использоватьawk
aws ec2 describe-instances --output text --profile test --query 'Reservations[*].[[OwnerId, Instances[*].[InstanceId, InstanceType, State.Name, Platform, Placement.AvailabilityZone, PublicIpAddress, PrivateIpAddress,[Tags[?Key==Name].Value][0][0],[Tags[?Key==Environment].Value][0][0]]]]' --filter --filters Name=instance-state-name,Values=running | awk 1 ORS=' '
обновление:
Если вы хотите добавить ownerID с подробностями каждого экземпляра, используйте это.
aws ec2 describe-instances --output text --query 'Reservations[*].[[OwnerId, Instances[*].[InstanceId, InstanceType, State.Name, Platform, Placement.AvailabilityZone, PublicIpAddress, PrivateIpAddress,[Tags[?Key==Name].Value][0][0],[Tags[?Key==Environment].Value][0][0]]]]' --filter --filters Name=instance-state-name,Values=running | paste -d" " - -