Многострочный текст с ключом и значением в каждой строке.В оболочке Linux я хочу найти ключ и проверить, соответствует ли значение тому, что я ожидаю.
Если значение совпадает, состояние выхода должно быть нулевым.
Если значение не совпадает, состояние выхода должно быть ненулевыми строка с распечатанным ключом.
Мое текущее решение - поиск ключа для grep (в примере bbb ), поиск ожидаемого значения ( 2 или 5 ) с помощью sed и выход со статусом 100, если не найден:
~ printf "aaa: 1\nbbb: 2\nccc: 3" | grep bbb | tee /dev/stdout | sed '/bbb: 2/!{q100};'; echo "exit status: $?"
bbb: 2
bbb: 2
exit status: 0
~ printf "aaa: 1\nbbb: 2\nccc: 3" | grep bbb | tee /dev/stdout | sed '/bbb: 5/!{q100};'; echo "exit status: $?"
bbb: 2
exit status: 100
Решение кажется слишком сложным, и при совпадении выводит строку дважды.Как мне упростить скрипт?