The UNIX and Linux Forums  


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
print samt telle filer funnet av finne kommandoen amicon007 Shell programmering og Skripting 3 02-05-2009 12:38
finne kommandoen mens loop - hvordan du får kontroll når ingen filer funnet? mavsman Shell programmering og Skripting 3 04-03-2008 12:44
Filer i Lost + Found spricks UNIX for Dummies Spørsmål og svar 1 02-05-2008 11:26
Overvåke en katalog for nye filer med. Xx og utføre kommandoen hvis funnet krkan Shell programmering og Skripting 4 03-14-2006 11:16
variabelen ikke funnet med loop? douknownam Shell programmering og Skripting 2 09-27-2004 11:59

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-21-2009
Calypso Calypso is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 29
Loop gjennom filer som blir funnet

Hei Jeg prøver å skrive et script som vil sløyfe gjennom alle filer som slutter på ". Txt" og spørre brukeren om de ønsker å slette filen eller ikke


Code:
#this print out all files
dir=/root/etc/
find $dir -name "*.txt"

utgang:
1.txt
2.txt
osv.

men det jeg virkelig ønsker er

1.txt sletter (J / N):
2.txt sletter (J / N):
osv.


Jeg har forsøkt looper for eksempel


Code:
for file $dir in "*.txt"; do
   echo "$file    delete (y/n)"
done

men ikke ut til at det fungerer, noen ideer er meget verdsatt takk
  #2 (permalink)  
Old 04-21-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
stoffmisbruker
  
 

Bli Date: Jan 2007
Beliggenhet: Варна, България / Milano, Italia
Innlegg: 2915
Prøve:


Code:
find "$dir" -name '*.txt' -exec rm -i {} \;

  #3 (permalink)  
Old 04-21-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerer, forfatter
  
 

Bli Date: Mar 2007
Bosted: Toronto, Canada
Innlegg: 2362

Code:
for file in *.txt
do
   printf "%s: delete (Y/N): " "$file"
   read x
   case $x in
      [yY]) rm "$file" ;;
   esac 
   echo
done

  #4 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 29
Først av alt takk for svar, vil det sett med kommandoer dont akkurat gjøre hva jeg vil om unfornutely
@ radoulov
Er det mulig å modifisere dette noe å spørre brukeren før sletting, har jeg prøver å spille rundt med, men skrånende finne ut riktig syntaks


Code:
find $dir -name "*.txt" -exec echo "delete y/n" {} \; read x {} \;



@ cfjohnson
dette ikke synes å søke riktig katalog, jeg fant et eksempel som vil søke riktig dir f.eks


Code:
for file in `find $dir -name "*.txt"`; do

Det eneste problemet er at noen filer ha mellomrom i navnene deres for eksempel "/ etc / space inFilename"

og den skrives ut filen ut dobbelt dvs.

/ etc / space
inFilename

er det likevel å skrive den ut som en?

Takk igjen

Calypso
  #5 (permalink)  
Old 04-22-2009
abinaya abinaya is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 24
Hei,

Sjekk under kode


Code:
 
#!/bin/sh
for file in *.txt
do
        echo " \"$file\" delete(Y/N) :"
        read opt
        case $opt in
        [yY])rm "$file"
                echo "$file removed........."
        ;;
        esac
done

  #6 (permalink)  
Old 04-22-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerer, forfatter
  
 

Bli Date: Mar 2007
Bosted: Toronto, Canada
Innlegg: 2362
Sitat:
Originally Posted by Calypso View Post

Code:
for file in `find $dir -name "*.txt"`; do

Det eneste problemet er at noen filer ha mellomrom i navnene deres for eksempel "/ etc / space inFilename"

og den skrives ut filen ut dobbelt dvs.

/ etc / space
inFilename

er det likevel å skrive den ut som en?


Code:
find $dir -name "*.txt" |
  while IFS= read -r file; do

  #7 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Registrert bruker
  
 

Bli Dato: april 2009
Innlegg: 29
@ cfajohnson

Im redd den fortsatt ikke ser ut til å fungere, nå skriptet tar ut alle mellomrom så når jeg gjør


Code:
find $dir -name "*.txt" | while IFS= read -r file; do
  mv -i $file `echo file | sed 's/ //g'`
done

Jeg får følgende feil
/ etc / fil: Ingen slik fil eller katalog
navn: Ingen slik fil eller katalog
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 12:32.


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