Это, кажется, работает:
#!/bin/bash
OUTPUT="$(echo "foo")" # replace 'echo "foo"' with your command
if [[ -z "$OUTPUT" ]]; then
echo "No output."
else
echo "$OUTPUT"
fi
Глядя на справочную страницу для оригинального rpl
, кажется, что он может поддерживать regex просто отлично.
Примеры замены символьных строк смотрите ниже.
Примечание: Если вы используете локаль, отличную от En_US, следующие примеры могут включать не все алфавитные символы.
Чтобы заменить легальный идентификатор FORTRAN (буквенный символ, за которым следуют до пяти буквенно-цифровых символов) на xxx, введите:
$ rpl '[A-Za-z][A-Za-z0-9]{0,5}' xxx
Чтобы заменить все вхождения символьной строки sky на blue sky в файле skyfile и поместить результат в файл bluefile, введите:
$ rpl sky "blue sky"
bluefile
Однако при тестировании Linux версии rpl
не похоже, что regex был реализован в этой версии. Ни одно из моих тестирований не смогло использовать какие-либо функции regex.
Версия 1.5.5 для Linux не поддерживает замену регулярных выражений.
Альтернативный вариант использования SED описан в https://stackoverflow.com/a/1583282