On Thu, 8 Jun 2017 11:41:33 -0300
luciano de souza 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..
pgplP3C0ezVPA.pgp
Description: OpenPGP digital signature
--
Mais sobre o Ubuntu em português: http://www.ubuntu-br.org/comece
Lista de discussão Ubuntu Brasil
Histórico, descadastramento e outras opções:
https://lists.ubuntu.com/mailman/listinfo/ubuntu-br