The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
print alsook tellen de bestanden gevonden door find commando amicon007 Programmeren en Shell Scripting 3 02-05-2009 12:38
find commando in de while lus - hoe je de controle als er geen bestanden gevonden? mavsman Programmeren en Shell Scripting 3 04-03-2008 12:44
Files in Lost + Found spricks UNIX voor Dummies Questions & Answers 1 02-05-2008 11:26
Bewaking van een directory voor nieuwe bestanden met. Xx en uitvoerende opdracht indien gevonden krkan Programmeren en Shell Scripting 4 03-14-2006 11:16 PM
variabele niet gevonden met lus? douknownam Programmeren en Shell Scripting 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 Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 04-21-2009
Calypso Calypso is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
Loop via gevonden bestanden

Hi I am trying to write a script die lus door alle bestanden die eindigen op ". Txt" en vraagt de gebruiker als ze willen om het bestand te verwijderen of niet


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

output:
1.txt
2.txt
etc

maar wat ik echt wil is

1.txt verwijderen (J / N):
2.txt verwijderen (J / N):
etc


Ik heb geprobeerd lussen bijvoorbeeld


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

maar zij dont lijken te werken, alle ideeën zijn zeer gewaardeerd dankzij
  #2 (permalink)  
Old 04-21-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Locatie: Варна, България / Milano, Italia
Berichten: 2.928
Probeer:


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

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

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2380

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
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
Allereerst bedankt voor de antwoorden, de reeks van commando's dont precies doen wat ik wil al unfornutely
@ radoulov
Is het mogelijk om dit iets te vragen de gebruiker eerst verwijderen, Ik heb geprobeerd om te rotzooien met cant maar uitzoeken correcte syntaxis


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



@ cfjohnson
dit doesnt lijken te zoeken in de juiste directory, vond ik een voorbeeld die zullen zoeken in de juiste richting bijvoorbeeld


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

Het enige probleem is dat sommige bestanden hebben ruimten in hun naam bijvoorbeeld '/ etc / ruimte inFilename "

en dan print het bestand uit tweemaal dwz

/ etc / ruimte
inFilename

is er toch om af te drukken als een?

Nogmaals bedankt

Calypso
  #5 (permalink)  
Old 04-22-2009
abinaya abinaya is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 24
Hoi,

Controleer de onderstaande code


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 programmeur, auteur
  
 

Join Datum: maart 2007
Plaats: Toronto, Canada
Berichten: 2380
Citaat:
Oorspronkelijk geplaatst door Calypso View Post

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

Het enige probleem is dat sommige bestanden hebben ruimten in hun naam bijvoorbeeld '/ etc / ruimte inFilename "

en dan print het bestand uit tweemaal dwz

/ etc / ruimte
inFilename

is er toch om af te drukken als een?


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

  #7 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Geregistreerde gebruiker
  
 

Join Date: april 2009
Posts: 29
@ cfajohnson

Im bang dat het nog steeds doesnt lijkt te werken, nu het script neemt alle spaties, dus toen ik doen


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

Ik krijg de volgende fouten
/ etc / file: No such file or directory
naam: No such file or directory
Closed Thread

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 06:24 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0