The UNIX and Linux Forums  

Go Back   Die UNIX-und Linux-Foren > Top Foren > Shell Programmierung und Scripting
.
Google unix.com



Shell Programmierung und Scripting Post Fragen zu ksh, csh, sh, bash, Perl, PHP, sed, awk und anderen Shell-Skripte und Shell-Scripting-Sprachen hier.

Mehr UNIX-und Linux-Forum Themen Vielleicht finden Sie hilfreiche
Faden Thread Starter Forum Antworten Last Post
print sowie Anzahl der gefundenen Dateien von FIND-Kommando amicon007 Shell Programmierung und Scripting 3 02-05-2009 12:38 PM
FIND-Kommando in der while-Schleife - Wie kommt man, wenn keine Dateien gefunden? mavsman Shell Programmierung und Scripting 3 04-03-2008 12:44 PM
Files in Lost + Found spricks UNIX for Dummies Questions & Answers 1 02-05-2008 11:26 AM
Überwachung ein Verzeichnis für die neuen Dateien mit der Endung. Xx und Durchführung Befehl gefunden, wenn krkan Shell Programmierung und Scripting 4 03-14-2006 11:16 PM
Variable nicht mit Loop? douknownam Shell Programmierung und Scripting 2 09-27-2004 11:59 AM

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 Suche diesen Thread Rate Thread Anzeige-Modi
  #1 (permalink)  
Old 04-21-2009
Calypso Calypso is offline
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 29
Loop durch gefundenen Dateien

Hi Ich versuche, ein Skript schreiben, die Schleife durch alle Dateien mit der Endung ". Txt" und Benutzer fragen, wenn sie wollen, um die Datei zu löschen oder nicht


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

Ausgang:
1.txt
2.txt
etc

Aber was ich wirklich will, ist

1.txt löschen (J / N):
2.txt löschen (J / N):
etc


Ich habe versucht Loops zum Beispiel


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

aber keine scheinen zu funktionieren, alle Ideen sind sehr dank
  #2 (permalink)  
Old 04-21-2009
radoulov's Avatar
radoulov radoulov is offline Forum Staff  
addict
  
 

Join Date: Jan 2007
Lage: Варна, България / Milano, Italia
Posts: 2926
Versuchen Sie:


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

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

Join Date: März 2007
Ort: Toronto, Kanada
Beiträge: 2378

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
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 29
Zunächst einmal Dank für die Antworten, die Menge der Befehle dont genau das tun, was ich will aber unfornutely
@ radoulov
Ist es möglich, diese etwas zu fragen, die zuerst vor dem Löschen, habe ich versucht zu spielen, sondern kann mit etwa herauszufinden, korrekte Syntax


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



@ cfjohnson
dieser doesnt offenbar das richtige Verzeichnis suchen, fand ich ein Beispiel, die Suche der richtigen dir zB


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

Das Problem ist nur, dass einige Dateien sind Räume, in deren Namen zum Beispiel "/ etc / Raum infilename"

und dann druckt es die Datei zweimal dh

/ etc / space
infilename

ist es überhaupt zu drucken Sie es aus wie ein?

Nochmals vielen Dank

Calypso
  #5 (permalink)  
Old 04-22-2009
abinaya abinaya is offline
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 24
Hi,

Überprüfen Sie die unten-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-Programmierer, Autor
  
 

Join Date: März 2007
Ort: Toronto, Kanada
Beiträge: 2378
Zitat:
Zitat von Calypso View Post

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

Das Problem ist nur, dass einige Dateien sind Räume, in deren Namen zum Beispiel "/ etc / Raum infilename"

und dann druckt es die Datei zweimal dh

/ etc / space
infilename

ist es überhaupt zu drucken Sie es aus wie ein?


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

  #7 (permalink)  
Old 04-22-2009
Calypso Calypso is offline
Registrierte Nutzer
  
 

Join Date: Apr 2009
Beiträge: 29
@ cfajohnson

Im doesnt fürchte, es noch zu funktionieren scheint, nun das Skript nimmt alle Räume so, wenn ich


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

bekomme ich nur die folgenden Fehler
/ etc / Datei: Keine solche Datei oder ein Verzeichnis
Name: Keine solche Datei oder ein Verzeichnis
Closed Thread

Lesezeichen

Thread Tools Suche diesen Thread
Suche diesen Thread:

Erweiterte Suche
Anzeige-Modi Rate this thread
Rate this thread:

Forumregeln
Du möglicherweise nicht neue Themen
Du möglicherweise nicht nach Antworten
Du möglicherweise nicht post-Anlagen
Du möglicherweise nicht bearbeiten Sie Ihre Beiträge

BB-Code ist Auf
Smilies sind Auf
[IMG] Code Auf
HTML-Code ist Aus
Trackbacks sind Auf
Pingbacks sind Auf
Refbacks sind Auf




Alle Zeiten sind GMT -4. Es ist jetzt 09:39 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Ltd. Sprachliche Übersetzungen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Die UNIX-und Linux-Foren Content © Copyright 1993-2009. Alle Rechte Reserved.Ad Management von RedTyger

Content Relevant URLs durch vBSEO 3.2.0