![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| 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. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Como encontrar uma cadeia dentro de arquivos | yoavbe | Programação Shell Script e | 12 | 05-05-2008 02:19 |
| Como eliminar Directory e no interior de arquivos usando comando Localizar | bmkreddy | Sun Solaris | 3 | 07-10-2007 03:35 |
| como encontrar um disco errored | raj.soladm | Sun Solaris | 2 | 08-28-2006 02:31 |
| como encontrar Script arquivo localização privilegiada script | Asami | Programação Shell Script e | 10 | 03-15-2006 12:57 |
| Encontre arquivos em Directórios | Steiner | Programação Shell Script e | 4 | 04-02-2005 01:01 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Necessidade script para localizar arquivos dentro de diretórios errored
Oi pessoas.
Eu trabalho em um script para verificar os arquivos que estão supostamente a não ser no diretório. Quer dizer, dentro de cada diretório ele deve ter alguns arquivos, mas alguns poderiam ser errado, e eu quero passar os arquivos que estão errados. Ex: CSPOTGET edpst / CargadoresSPOT Historicos_Spot_MDI.zip COBGET edpst / CargadorOmelBroker ??????. xls CORGET edpst / CargadorOmelReuters CarOmlReuts.xls Na pasta "edpst / CargadoresSPOT" só deve ter "Historicos_Spot_MDI.zip" Na pasta "edpst / CargadorOmelBroker" só deve ter arquivos com "yymmdd.xls", e não outros. Eu imagino esta "configuração" arquivo onde a 1 ª coluna é uma variável, o segundo é o diretório e da 3 ª coluna é o arquivo (s) de cada diretório. Você entendeu o que eu escrevi? osramos |
|
||||
|
Quer encontrar arquivos que não correspondem ao padrão, correto? ksh permite que você faça o seguinte: Código:
#!/bin/ksh # files that are not named Historicos_Spot_MDI.zip ls edpst/CargadoresSPOT/!(Historicos_Spot_MDI.zip) # ls edpst/CargadorOmelBroker/!(??????.xls) # ls edpst/CargadorOmelReuters/!(CarOmlReuts.xls) |
|
||||
|
Ok, ele funciona.
Mas há cerca de 50 diretórios, com alguns deles com 4 ou 5 arquivos para excluir (não jogo). Posso fazer isto com um ciclo ou algo semelhante PARA? osramos Citação:
|
|
||||
|
O que você está pedindo é a de criar um resultset que todos os arquivos menos pattern1 menos pattern2 O único problema para isso é que nós vamos ter que usar grep-v. O arquivo padrões correspondentes tornam-se as expressões regulares Código:
??????.xls
# becomes regex:
[0-9]{6}\.xls
Isso acontecerá para cada arquivo que você deseja excluir. Caso contrário, você não pode simplesmente Código:
ls !(pattern) para cinco arquivos diferentes, porque cada instância de! (pattern2) irá mostrar como outros padrões pattern2 pattern3 ... etc Código:
# generalized solution ls directory | grep -v -e 'regex1' -e 'regex2' -e 'regex3' Por isso você tem que construir 50 diferentes regexes (um para cada arquivo que você tem que especificar) e aplicam-se algumas delas para o diretório correto saída de ls. Eu não posso fazer isso por você. |
|
||||
|
Oh, eu vejo.
Outro problema que tenho, assumindo que eu estou usando "ls! (Padrão)", é o shell que estou usando. O servidor é um Windows Server, mas tem instalado CygWin e Bash não reconhece o "!". Existe outra solução? Atenciosamente, osramos Citação:
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|