[Ubuntu-BR] SED - Dificuldades com as suas expressões regulares

C de-Avillez hggdh2 em ubuntu.com
Sexta Junho 9 02:29:02 UTC 2017


On Thu, 8 Jun 2017 11:41:33 -0300
luciano de souza <luchyanus em gmail.com> wrote:

> Caros,
> Estou escrevendo uma rotina para renomear arquivos, segundo padrão
> definido por expressão regular. Algo mais ou menos assim:
> 
> For oldname in ./*;
> Do
> Newname=`echo "$oldname" | sed -r -f patterns.sed`;
> mv "$oldname" "$newname";
> Done;
> 
> Mas não estou conseguindo lidar com as particularidades do SED. Não
> aceita "\d", mas tão somente "[:digit:]". Por outro lado, aceita \w,
> mas não aceita "\s"... Além disso, a que serem escapados muitos,
> realmente muitos caracteres.
> O que lhes pergunto é: existe algum modo de funcionamento do sed, que
> me permita criar expressões regulares corriqueiras, sem
> particularidades de sintaxe, sem tantos escapes que tanto dificultam a
> escrita e a leitura?
> Não sendo isso possível com o sed, conheceriam outra ferramenta,
> disponível em Shellscript com a qual pudesse obter este resultado?
> 

Provavelmente estás a usar a chamada BRE (Basic Regular Expression).
Seria mais fácil usando-se ERE (Extented Regular Expression).

'info sed' explica as diferenças (uma delas é que não é necessário
escapar-se tantos caracteres).

Talvez valha a pena instalar 'pinfo' e usa-lo ao invés de 'info'.

Cheers,

..C..
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: não disponível
Tipo: application/pgp-signature
Tamanho: 801 bytes
Descrição: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/ubuntu-br/attachments/20170608/6b5ea714/attachment.pgp>


Mais detalhes sobre a lista de discussão ubuntu-br