Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
site google



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Reply
English Japanese Spanish French German Portuguese Italian Powered by Powered by Google
 
Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 09-30-2009
Usuário
 

Data de Entrada: Sep 2009
Posts: 2
Excluindo arquivos extra com nomes similares

Olá,

Tenho uma grande quantidade de arquivos em um diretório raiz, com vários sub-diretórios, e muitos destes sub-diretórios tem arquivos semelhantes com nomes semelhantes. Preciso limpar isto.

Os nomes dos arquivos são do formato:


Código:
/path/to/dir/subdir/file name.dat
/path/to/dir/subdir/file name 1.dat

Quero manter apenas
Código:
/path/to/dir/filename.dat

e remover o outro arquivo. Eu tentei algumas ferramentas fslint incluindo, mas não funcionou porque o conteúdo real dos arquivos podem variar um pouco.

Ajuda na criação de um script ou similar para eliminar os arquivos desnecessários seria muito apreciada.

Obrigado!
Links Patrocinados
  #2 (permalink)  
Old 09-30-2009
Usuário
 

Join Date: Nov 2008
Localização: Amsterdam
Mensagens: 1.320
Se você tiver apenas subdiretórios de nível único que você poderia usar

Código:
rm /path/to/dir/*/filename.dat

para eliminar todas as ocorrências de "filename.dat" nos subdiretórios imediatamente abaixo / caminho / para / dir /
ou se você quiser também remover arquivos semelhantes por exemplo, você poderia tentar algo como:

Código:
ls /path/to/dir/*/file*name*.dat

se refere exactamente os arquivos que você precisa para remover você pode

Código:
rm /path/to/dir/*/file*name*.dat


Última edição por Scrutinizer; em 09-30-2009 05:32..
  #3 (permalink)  
Old 10-01-2009
Usuário
 

Data de Entrada: Sep 2009
Posts: 2
Infelizmente, nem que sua simples.

Por um lado, eu não sei os nomes dos arquivos de antemão. Além disso, o sub-diretórios são aninhados, até três níveis de profundidade. Há um total de 30.000 ficheiros com um número estimado de 10.000 duplicatas.

Deixe-me tentar esclarecer: eu quero apagar arquivos duplicados. Estes arquivos duplicados estão na mesma pasta que o original e tem um "1" no final do nome do arquivo. Alguns exemplares também podem ter o "1" no final do nome do arquivo, mas repete para eles não existem.
  #4 (permalink)  
Old 10-01-2009
Usuário
 

Join Date: Nov 2008
Localização: Amsterdam
Mensagens: 1.320
OK, isso é uma exigência muito diferentes . Assumindo que as duplicatas têm sempre "1" no final, seguido da extensão ". Dat", você pode experimentar este ksh / bash código:


Código:
BASEDIR='/path/to/dir'
ext='.dat'
duplext=' 1'
find "$BASEDIR" -type d | while read dir; do
  find $dir -name "*$ext" -maxdepth 1 -type f | while read file; do
    duplicate="${file%$ext}$duplext$ext"
    if [[ -f "$duplicate" ]]; then
      rm "$duplicate"
    fi
  done
done


Última edição por Scrutinizer; em 10-01-2009 05:36..
Links Patrocinados
Reply

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Desligado


Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
remover arquivos extra no DOS namishtiwari Programação Shell Script e 11 08-27-2009 11:27
csh script para apagar os espaços extras no arquivo texto hertingm Programação Shell Script e 2 03-12-2009 04:22
Apagar a semelhante avi.skynet Programação Shell Script e 2 02-02-2009 05:09
Comparando as colunas semelhantes em dois arquivos diferentes ragavhere Programação Shell Script e 13 04-16-2008 09:53
Anexar texto para um número semelhante de filenames Djaunl UNIX para Dummies Perguntas & Respostas 4 10-10-2007 12:16



Todos os horários são GMT -4. A hora é agora 11:30.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Brasil Content Copyright © 1993-2010. Todos os direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0