переносимость sed :расширенное регулярное выражение и обратная косая черта

Если вы хотите «запланировать» сценарий, я думаю, что «Кронтаб» может быть хорошим решением. Другое решение — запустить скрипт в фоновом режиме (с & ).

0
07.02.2021, 18:49
2 ответа

Руководство GNU дает ответ:

5.2 Basic (BRE) and extended (ERE) regular expression

Basic and extended regular expressions are two variations on the syntax of the specified pattern. Basic Regular Expression (BRE) syntax is the default in sed (and similarly in grep). Use the POSIX-specified -E option (-r, --regexp-extended) to enable Extended Regular Expression (ERE) syntax.

In GNU sed, the only difference between basic and extended regular expressions is in the behavior of a few special characters: ‘?’, ‘+’, parentheses, braces (‘{}’), and ‘|’.

With basic (BRE) syntax, these characters do not have special meaning unless prefixed with a backslash (‘\’); While with extended (ERE) syntax it is reversed: these characters are special unless they are prefixed with backslash (‘\’).

1
18.03.2021, 22:32

sed -Eозначает, что будет использоваться расширенное регулярное выражение (ERE), без этого флага будет использоваться базовое регулярное выражение(BRE).

Не все sedверсии могут работать с расширенными регулярными выражениями, так что да, они более переносимы, но не потому, что вы используете обратную косую черту. Это нормально BRE.

См. BRE и ERE

2
18.03.2021, 22:32

Теги

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