The UNIX and Linux Forums  

Go Back   UNIX och Linux Forum > Upp Forum > Shell-programmering och Skript
.
google unix.com



Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här.

Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
Tråd Thread Starter Forum Svar Senaste Inlägg
Skriv ut och räkna de filer som hittas av hitta kommandot amicon007 Shell-programmering och Skript 3 02-05-2009 12:38
hitta kommandot medan loop - hur man får kontroll när inga filer hittas? mavsman Shell-programmering och Skript 3 04-03-2008 12:44
Filer i Lost + Found spricks UNIX for Dummies Frågor & Svar 1 02-05-2008 11:26
Övervakning en katalog för nya filer med. Xx och verkställande kommandot om funna krkan Shell-programmering och Skript 4 03-14-2006 11:16
variabel inte finns med loop? douknownam Shell-programmering och Skript 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 denna tråd Rate Thread Visningslägen
  #1 (permalänk)  
Old 04-21-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
Gå igenom funna filer

Hej Jag försöker skriva ett manus som kommer loop genom alla filer som slutar på ". Txt" och be användare om de vill ta bort filen eller inte

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

men vad jag verkligen vill är

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


Jag har försökt loopar till exempel

Kod:
for file $dir in "*.txt"; do
   echo "$file    delete (y/n)"
done
men de inte verkar fungera, alla idéer är mycket uppskattade tack
  #2 (permalänk)  
Old 04-21-2009
radoulov's Avatar
radoulov radoulov is online now Forum Staff  
missbrukare
  
 

Join Date: Jan 2007
Ort: Варна, България / Milano, Italia
Inlägg: 2.886
Prova:

Kod:
find "$dir" -name '*.txt' -exec rm -i {} \;
  #3 (permalänk)  
Old 04-21-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2361
Kod:
for file in *.txt
do
   printf "%s: delete (Y/N): " "$file"
   read x
   case $x in
      [yY]) rm "$file" ;;
   esac 
   echo
done
  #4 (permalänk)  
Old 04-22-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
Först och främst tack för svaren, den uppsättning kommandon dont precis göra vad jag vill men unfornutely
@ radoulov
Är det möjligt att ändra något för att be användaren första innan du tar bort, jag har försökt att leka med men cant lista ut korrekt syntax

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


@ cfjohnson
detta doesnt verkar för att söka rätt katalog hittade jag ett exempel som kommer att söka rätt dir t.ex.

Kod:
for file in `find $dir -name "*.txt"`; do
Det enda problemet är att vissa filer har utrymmen i deras namn t.ex. "/ etc / rymden inFilename"

och sedan skriver ut filen ut två gånger dvs

/ etc / rymden
inFilename

är det ändå för att skriva ut som en?

Tack igen

Calypso
  #5 (permalänk)  
Old 04-22-2009
abinaya abinaya is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 24
Hej,

Kontrollera nedan kod

Kod:
 
#!/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 (permalänk)  
Old 04-22-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programmerare, författare
  
 

Join Date: mars 2007
Ort: Toronto, Kanada
Inlägg: 2361
Citat:
Ursprungligen postat av Calypso View Post
Kod:
for file in `find $dir -name "*.txt"`; do
Det enda problemet är att vissa filer har utrymmen i deras namn t.ex. "/ etc / rymden inFilename"

och sedan skriver ut filen ut två gånger dvs

/ etc / rymden
inFilename

är det ändå för att skriva ut som en?

Kod:
find $dir -name "*.txt" |
  while IFS= read -r file; do
  #7 (permalänk)  
Old 04-22-2009
Calypso Calypso is offline
Registered User
  
 

Join Date: april 2009
Inlägg: 29
@ cfajohnson

Im rädd för att det fortfarande doesnt verkar fungera, nu skriptet tar ut alla utrymmen så när jag gör

Kod:
find $dir -name "*.txt" | while IFS= read -r file; do
  mv -i $file `echo file | sed 's/ //g'`
done
Jag skulle bara få följande fel
/ etc / ärende: Ingen sådan fil eller katalog
Namn: Ingen sådan fil eller katalog
Closed Thread

Komihåglista

Thread Tools Sök i denna tråd
Sök i denna tråd:

Avancerad sökning
Visningslägen Betygsätt denna tråd
Betygsätt denna tråd:

Utstationering Regler
Du får inte efter nya trådar
Du får inte efter svar
Du får inte skicka bilagor
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG] kod
HTML-koden är Av
Trackback är
Pingbacks är
Refbacks är




Alla tider är GMT -4. Klockan är nu 08:23.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Översättningar Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX och Linux Forum Innehållet upphovsrättsskyddat © 1993-2009. All Rights Reserved.Ad förvaltning RedTyger

Content Relevant webbadresser från vBSEO 3.2.0