Eu estou usando sed. Eu estava usando um regex que estava correto, tanto quanto eu podia ver, mas sed não fez nada. Acontece que eu estava usando o \s+
que sed não consegue entender, e quando mudei para [ ]+
ele funcionou.
Então, para resumir, fiz um regex que, para funcionar, tive que escapar de quase tudo e remover o \s
espaço em branco for. Parece que existe um modo de evitar tudo isso, -r
então eu queria perguntar:
- Por que
-r
o modo padrão não é o sed? Por que eu tive que me dar ao trabalho de escapar de tudo? man
diz que existe a opção--posix
e que "POSIX.2 BREs devem ser suportados" A que isso se refere? Modo NFA / DFA?
\s+
uso de perl[[:space:]][:space:]]*
no BRE e o mesmo ou[[:space:]]+
no ERE.Respostas:
Re 1) A resposta é a mesma que para qualquer outra ferramenta que foi aprimorada ao longo de décadas. :)
Você não deseja interromper scripts existentes alterando o comportamento padrão.
Re 2) Isso não tem nada a ver com o mecanismo correspondente; é apenas uma questão de qual conjunto de expressões regulares é suportado. POSIX BRE significa "expressão regular básica".
fonte
Em relação ao ponto 2:
gnu sed
usa o GNUBRE
por padrão. Para usar o POSIX,BRE
você deve especificar--posix
fonte