![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| UNIX para Dummies Perguntas & Respostas Se não tiver certeza de onde se pode postar uma pergunta Unix ou Linux, postá-lo aqui. Todos os UNIX e Linux novatos bem vindos! |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| fazendo gato recursivamente sobre todos os arquivos em um diretório | tulipa | Programação Shell Script e | 11 | 05-21-2009 06:24 |
| recursivamente renomear arquivos | catgovind | UNIX para Dummies Perguntas & Respostas | 2 | 08-20-2008 03:50 |
| renomeie o arquivo em lote | reldb | UNIX & avançada para usuários experientes | 7 | 01-14-2008 06:43 |
| renomear em lote | kathy18 | Programação Shell Script e | 3 | 03-09-2005 09:47 |
| Lista Arquivos Recursivamente | roberthawke | UNIX para Dummies Perguntas & Respostas | 9 | 06-24-2002 07:19 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Gostaria de substituir vários sublinhados com hífens, mas tenho 26.000 para renomear arquivos. Estão todos em um arquivo estrutura e vários sub-diretórios.
Seria muito mais simples se eu tinha um script para fazer isso. Aqui estão algumas amostras dos nomes de arquivos: Exemplo 1 books/horrors/small/books_horrors_small_0000000386.jpg Mudar para books/horrors/small/books-horrors-small-0000000386.jpg Exemplo 2 books/comedy/small/books_comedy_small_0000001687.jpg Mudar para books/comedy/small/books-comedy-small-0000001687.jpg Existem 26.000 arquivos que similer olhar para isso e são todos em diferentes diretórios. A única coisa que precisa fazer é substituir todos os underscores _ com hífens -- |
|
||||
|
Código:
awk 'BEGIN{
q="\047"
path="/path/to/search"
cmd="find "path" -type f -name \"*_*.jpg\""
while(( cmd|getline f )>0){
m=split(f,file,"/")
gsub(/_/,"-",file[m])
newfilename = join(file,1,m,"/")
mv = "mv "q f q" "q newfilename q
print mv
#system(mv) #uncomment to use
close(mv)
}
close(cmd)
}
function join(array, start, end, sep, result, i)
{
if (sep == "") sep = " "
else if (sep == SUBSEP) sep = ""
result = array[start]
for (i = start + 1; i <= end; i++)
result = result sep array[i]
return result
}'
Última edição por ghostdog74; em 06/26/2009 03:17.. |
|
||||
|
Batch File Rename Recursivamente - Brilhante, Agora Como no Diretório Nomes?
ghostdog74 da solução abaixo é brilhante e funcionou bem.
Seguimento pergunta: Como fazer a mesma coisa, mas apenas sobre os arquivos no mesmo arquivo pasta árvore (recursivamente)? DougABC123 Citação:
|
![]() |
| Marcadores |
| Tags |
| lote renomear substituir _ -- |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|