РЕДАКТИРОВАТЬ: удалено первое улучшение, которое использовалось OP.
Эта проблема не должна быть такой сложной, но мы должны попробовать ее небольшими шагами.
Вы следовали моему совету, чтобы добавить 2>/dev/null
, но написали это не в том месте:
aws ... --profile=lab | sed -e 's/...//g' 2>/dev/null
должно быть
aws ... --profile=lab 2>/dev/null | sed -e 's/...//g'
Когда это сработает, вам будет не хватать всю строку, так что еще лучше будет
aws ... --profile=lab 2>&1 | sed -e 's/...//g'
Если это не помогает, попробуйте следующие подходы:
Просмотрите ваш код и то, что вы написали в коде
Пример вывода показывает Deleting unused snapshots in AWS Gov Non Prod
, код показывает echo "Deleting unattached volumes in AWS Lab"
.
Тестируете ли вы тот же файл, который редактировали?
Убедитесь, что #!/bin/bash
находится на первой строке без дополнительных пробелов
Отладка с временным файлом
Перенаправьте вывод aws в файл и посмотрите на этот файл.
aws ... --profile=lab > /tmp/aws.out
vi /tmp/aws.out
(смотрите специальные символы, символы табуляции, ..)
Попробуйте простые команды с /tmp/aws.out
sed 's/An error/===/' /tmp/aws.out
sed 's/An error.*: /===/' /tmp/aws.out # something special in the part you try to match
sed 's/ /=/' /tmp/aws.out # Are all white spaces a space ?
sed 's/.*/===/' /tmp/aws.out # Can sed do anything at all or are you missing an EOL
grep -v "An error" /tmp/aws.out # sed should be fine, but will this remove the complete line?