[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