Раздел вопрос-ответ Как удалить часть строки в bash?

Как в Bash обрезать строку регулярным выражением?

Например есть такая строка:

RESULT="any data. String 1.2.1 String End. Replace me plz Bash."
echo $RESULT;

Мне нужно чтобы обрезалось начало строки и осталось только Replace me plz Bash. Т.е. нужно заменить на пустоту всё что соответствует регулярке ".*String [\d.]+ String End\." (примерная регулярка, как я бы делал на php).

share

1 ответ

Предлагаю использовать утилиту awk или sed.

Например, обрезать строку на вашем примере с помощью sed:

RESULT="any data. String 1.2.1 String End. Replace me plz Bash."
echo $RESULT | sed 's/.*String [[:digit:]\.]* String End\.\s*//'

Т.е. обрезаем всё от начала строки, включая String, затем любое количество любых цифр и точек, затем String End. и лишние пробелы.

Результирующий вывод:

Replace me plz Bash.

 

Добавить комментарий
    как минимум 5 символов

    icon Вход в систему

    зарегистрироваться
    НОВЫЕ ПОЛЬЗОВАТЕЛИ