Substituir certos elementos em um caminho por uma tag

0

Eu quero modificar os caminhos com um determinado padrão.

Por exemplo

./foo/1023023/43655345/bar/

torna-se

./foo/_dir_/_dir_/bar/

O padrão é sempre precedido por / foo / seguido por 2 diretórios que possuem números como um nome (as strings a serem substituídas pela tag dir ).

Eu tentei usar sed, mas minhas habilidades de regex não estão à altura desse problema. Não consigo substituir as duas strings de diretório pela tag.

    
por Millianz 06.04.2012 / 20:08

1 resposta

1

Sua especificação do problema está incompleta; a tag é fixa ou depende dos números ou de algum outro aspecto do caminho? É o mesmo em ambas as substituições?

A solução simples (suposições mais simples para as respostas acima) é

sed 's,/foo/[0-9][0-9]*/[0-9][0-9]*/,/foo/_dir_/_dir_/,'

mas imagino que o problema real não envolva _dir_ strings fixas.

    
por 06.04.2012 / 20:13