Existem versões padrão de 'sed' nas quais '-E' não é suportado?

7

No BSD sed, -E é o sinalizador "regex estendido". No GNU sed, a documentação declara que -r é o sinalizador de regex estendido, mas a opção -E também funciona (embora não documentada em minha pesquisa).

Lembro-me de ler em algum lugar que -E será especificado na próxima edição das especificações POSIX, mas não consigo encontrar onde li isso.

(Isso é verdade? Existe uma referência autoritativa para isso, ou um usuário aqui que é uma autoridade?)

O quão portátil é a opção -E para sed ?

Existem versões padrão (isto é, compatíveis com POSIX) de sed nas quais -E não é suportado? (Quais?)

Por que o -E sinalizador não é documentado para o GNU sed?

    
por Wildcard 17.09.2016 / 02:32

2 respostas

8

O GNU primeiro adicionou suporte não documentado para -E apenas para ser compatível com a sintaxe do BSD, e a fonte incluiu o comentário

/* Undocumented, for compatibility with BSD sed. */

Mas em 2013 isso foi removido em este commit com a mensagem de log

Modify documentation to note sed "-E" option, now in POSIX, for EREs.

e o commit faz referência a um rastreador de defeitos para POSIX em esta página que marca como aceito o acréscimo de -E sinalizar para os argumentos sed

Parece que ele não entrou na última especificação POSIX (parte específica de ), mas eu acho que está chegando.

    
por 17.09.2016 / 03:16
5

O lugar para procurar é em sistemas certificados:

OSX tem isso, embora seja BSD ou GNU-first não fazia parte da questão.

    
por 17.09.2016 / 02:46

Tags