The UNIX and Linux Forums  
Hei og Velkommen fra til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > Shell programmering og Skripting
.
google unix.com



Shell programmering og Skripting Post spørsmål om ksh, csh, SH, Bash, Perl, PHP, SED, awk og ANDRE shell scripts og Shell skriptespråk her.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
hpux vg tilgjengelig, men enheten filer mangler! mariusp Filsystemer, disker og Minne 1 02-10-2007 03:18
sjekking manglende filer i side en mappe Nayanajith UNIX for Dummies Spørsmål og svar 4 06-26-2006 07:05
Manglende init filer for zsh og bash maag Sun Solaris 2 05-04-2006 05:37
Manglende bibliotekfiler jays337 UNIX for Dummies Spørsmål og svar 5 08-18-2005 09:23
filer mangler cubicle ^ dweller UNIX for Dummies Spørsmål og svar 4 09-22-2003 04:10

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Rate Thread Visningsmoduser
  #1 (permalink)  
Old 04-26-2008
gholdbhurg gholdbhurg is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Innlegg: 26
Slik kontrollerer manglende filer?

Jeg har 50 filer i denne katalogen (/ home / unixnewbie / wklyfiles) nemlig:
statistics.1
statistics.2
statistics.3
statistics.4
statistics.5
statistics.6
statistics.7
statistics.8
statistics.9
statistics.10
....
statistics.20
....
statistics.50

Hvordan kan jeg finne ut om noen vil det være noen filer mangler der?
Og hvordan vet hvilke nøyaktige filer er de? Som for eksempel det statistics.5, statistics.9, statistics.20 og statistics.35 filer mangler at uken.

Takk på forhånd.
  #2 (permalink)  
Old 04-26-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Lag en liste over alle filer som skal være der, og sammenligne.

Code:
perl -le 'for my $i (1..50) { print "missing: statistics.$i" unless -f "statistics.$i" }'
Jeg mente for Perl script til bare generere listen, men det viste seg å være så lett å gjøre alt i Perl. Beklager, folkens (-:

Bare for å illustrere mitt opprinnelige forslag, her er en annen tilnærming, med bare enkle shell kommandoer:

Code:
yes . | head -50 | nl | sed -e 's/^ *\([1-9][0-9]*\) .*/statistics.\1/' >list
ls -rt statistics.* | diff list -
Filen "venteliste" er generert med nl verktøyet til å ha linje tall og filnavnet Prefikset legges hjelp sed. (Dette kom ganske plaget - det ville kanskje være enklere med awk, men la oss bare si at bruk skriptespråk ville være juks, ok?) Da vi sammenligne den listen mot selve katalogoppføring. Dette krever at diff godtar "-" skal bety "lese andre filer fra standard input", ellers må du bruke to midlertidige filer. (Ikke glem å fjerne dem når du er ferdig.)

Sist endret av æra; 04-26-2008 på 01:34.. Grunn: Alternativ tilnærming, bare en illustrasjon
  #3 (permalink)  
Old 04-26-2008
gholdbhurg gholdbhurg is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Innlegg: 26
Wow stor takk mye tid!
Håper du ikke tankene en oppfølging spørsmålet, hva hvis jeg vil lagre i en fil med alle de eksisterende statistikk filer? Og akkurat bare sette mellomrom på de manglende filer?
Eksempel
\u003d\u003d>
statistics.1; statistics.2; statistics.3; statistics.4; <Mellomrom>; statistics.6 ;...... statistics.19; <Mellomrom>; statistics.21 ;...... statistikk. 34; <Mellomrom> ;.... statistics.50

Hmmm ..
  #4 (permalink)  
Old 04-26-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Code:
perl -e 'for my $i (1..50) { my $f = "statistics.$i"; print ($i > 1 ? ";" : ""), (-f "$f" ? "$f" : " ") }
print "\n"'
The "if? Deretter: Else" konstruere er litt vanskelig å sortere ut først, men gjør ganske enkel logikk når du forstår hvordan den fungerer.
  #5 (permalink)  
Old 04-26-2008
ripat ripat is offline Forum Advisor  
Registrert bruker
  
 

Bli Dato: Oct 2006
Bosted: Belgia
Innlegg: 438
En annen bash løsning:

Code:
#!/bin/bash

for nbr in $(seq 50); do
    if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi
done
For en-liners fanatikere:
Code:
for nbr in $(seq 50); do if [ ! -e "statistics.$nbr" ]; then echo "statistics.$nbr is missing"; fi; done
  #6 (permalink)  
Old 04-26-2008
æra era is offline Forum Advisor  
Herder av Useless Cats (På Sabbatical)
  
 

Bli Date: Mar 2008
Sted: / det / er / bare / bin / sh
Innlegg: 3652
Riktig fanatikere vil kanskje foretrekke

Code:
for n in $(seq 50); do [ -e statistics.$n ] || echo statistics.$n is missing; done
seq er ikke universell, det er grunnen til at jeg startet med Perl, Men hvis du har det, er det utmerket for denne typen jobb.
  #7 (permalink)  
Old 04-27-2008
gholdbhurg gholdbhurg is offline
Registrert bruker
  
 

Bli Dato: Oct 2007
Innlegg: 26
Dessverre er seq doesnt work
seq: kommandoen ikke funnet

Eventuelle andre UNIX scripting linjer mulig?
Btw, jeg bruker ksh. Takk!
Closed Thread

Hugseliste

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 11:46.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0