Используя регулярный experision в команде “rpl”

Это, кажется, работает:

#!/bin/bash

OUTPUT="$(echo "foo")"  # replace 'echo "foo"' with your command

if [[ -z "$OUTPUT" ]]; then
   echo "No output."
else
   echo "$OUTPUT"
fi
2
18.02.2014, 15:31
2 ответа

Глядя на справочную страницу для оригинального rpl, кажется, что он может поддерживать regex просто отлично.

Пример

Примеры замены символьных строк смотрите ниже.

Примечание: Если вы используете локаль, отличную от En_US, следующие примеры могут включать не все алфавитные символы.

  1. Чтобы заменить легальный идентификатор FORTRAN (буквенный символ, за которым следуют до пяти буквенно-цифровых символов) на xxx, введите:

    $ rpl '[A-Za-z][A-Za-z0-9]{0,5}' xxx
    
  2. Чтобы заменить все вхождения символьной строки sky на blue sky в файле skyfile и поместить результат в файл bluefile, введите:

    $ rpl sky "blue sky" bluefile
    

Однако при тестировании Linux версии rpl не похоже, что regex был реализован в этой версии. Ни одно из моих тестирований не смогло использовать какие-либо функции regex.

3
27.01.2020, 22:06

Версия 1.5.5 для Linux не поддерживает замену регулярных выражений.

Альтернативный вариант использования SED описан в https://stackoverflow.com/a/1583282

0
27.01.2020, 22:06

Теги

Похожие вопросы