Здесь поможет Grep:
for i in $(cat HPE_FRAMES_IP); do ssh Reports@$i showsys | awk '{print $2,$5}' | column -t ; ssh Reports@$i showpd -degraded -failed | awk '{print $1,$2,$3,$5}' ; done | grep -v "MiB" | grep -v "total" | grep -B 4 -iE "failed|degraded"
Направить вывод с помощью grep -B 4 -iE "failed|degraded"
Здесь используется документ здесь -для вывода многострочного сообщения -(пустая строка создается путем включения пустой строки в документ здесь -):
cat <<END
my kernel version is $(uname -a)
and the current date is $(date)
END
Это использует printf
для вывода сообщения (пустая строка создается путем вывода двух последовательных новых строк):
printf 'my kernel version is %s\n\nand the current date is %s\n' "$(uname -a)" "$(date)"
В моей системе оба они создают текст
my kernel version is OpenBSD box.prefix.example.com 6.9 GENERIC.MP#473 amd64
and the current date is Fri Apr 23 17:03:24 CEST 2021
См. также:Почему printf лучше, чем echo?
Я согласен, что printf
более универсален, чем echo
, но быстрая модификация:
ОТ:
echo -e "my kernel version is $(uname -a) \nand the current date is $(date)"
К:
echo -e "my kernel version is $(uname -a) \n\nand the current date is $(date)"
Не стесняйтесь добавлять сколько угодно новых строк\n
для увеличения пробелов.