The UNIX and Linux Forums  


Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Afsløring indgående filer uden travlt valgsteder baldyeti Shell Programmering og Scripting 9 08-15-2008 12:06 PM
script til at finde det gennemsnitlige antal eller filer? bbbngowc Shell Programmering og Scripting 2 03-27-2008 12:57 PM
køre et script fra indgående e-mail jojo77 UNIX for dummyer Spørgsmål & svar 7 02-22-2008 01:48 PM
finde antallet af indkomne ansøgninger til en server laddu UNIX for dummyer Spørgsmål & svar 1 03-10-2007 01:48 AM
awk script til at finde antallet af filer uni_ajay_r Shell Programmering og Scripting 4 10-31-2006 06:58 PM

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øg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 03-18-2009
hootdocta5 hootdocta5 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 5
Script til antal indgående filer

Hey gutter,

Jeg arbejder på en Cshell skrift, og jeg er fast på denne ene side. Jeg har brug for at være i stand til at kopiere i filer til mit bibliotek, men give dem forskellige navne, så de ikke overskriver hinanden. For eksempel allerede min mappe indeholder FILE.1 Jeg vil have min script til at navngive den næste fil kopieret over FILE.2 og den næste en FILE.3 og så videre. Det bør være i stand til at fortælle hvilke filer der er der, og opkaldt den nye den næsthøjeste værdi. Så jeg har FILE.1, FILE.2, og FILE.3 i mit bibliotek nu, hvis jeg kopiere i en anden fil, skal min script omdøbe det FILE.4 Dette script har kørt mig nødder hele dagen, jeg kan ikke finde det ud. Her er hvad jeg har hidtil. På forhånd tak. Nye kode vil blive værdsat, fordi jeg naturligvis ikke har nogen anelse om, hvad jeg gør i dette stykke.


Code:
while (-d FILE.0)
cp -r FILE FILE.1
 
set ctr = 1
foreach f(*)
   set var1 = 'file $f | awk '{printf "%s\n",$3}''
   if ($var1 == 1) then
      FILE = 'ls $f | cut -f1 -d "."'
      1 = 'ls $f | awk -F "." '{printf "%s\n",$2}''
      mv $f $FILE$ctr.$1
      ctr = 'expr $ctr + 1'
  endif
end
end

  #2 (permalink)  
Old 03-19-2009
wabard wabard is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Beliggenhed: Adelaide, SA & Perth, WA - Australien
Stillinger: 25
Exclamation


Code:
#!/bin/sh

i=1

while(a=1)
do
     if test -e  "FILE."$i
     then
       let i+=1
     else
       break
     fi
done

cp -f FILE FILE.$i


Senest redigeret af wabard; 03-19-2009 kl 08:53 PM.. Årsag: FAST cp Kommandolinjeargumentet til-f fra-r (jeg har skrevet den forkerte løsning, r og f er tæt på tastaturet .. lol)
  #3 (permalink)  
Old 03-19-2009
hootdocta5 hootdocta5 is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Stillinger: 5
Citat:
Oprindeligt Indsendt af wabard View Post
Code:
#!/bin/sh
 
i=1
 
while(a=1)
do
     if test -e  "FILE."$i
     then
       let i+=1
     else
       break
     fi
done
 
cp -r FILE FILE.$i
Hvad betyder det en repræsenterer i denne kode?
  #4 (permalink)  
Old 03-19-2009
wabard wabard is offline
Registreret Bruger
  
 

Join Date: Mar 2009
Beliggenhed: Adelaide, SA & Perth, WA - Australien
Stillinger: 25
Citat:
Oprindeligt Indsendt af hootdocta5 View Post
Hvad betyder det en repræsenterer i denne kode?

Dummy variabel for at tvinge samtidig at løkken for evigt ... du forlader ud af uendelig løkke med "pause" erklæring.

Bemærk: Jeg har lavet en fejl i "cp" kommandolinjeflaget i eksemplet ovenfor (korrigeret og noterede).
  #5 (permalink)  
Old 03-19-2009
summer_cherry summer_cherry is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Jun 2007
Location: Beijing Kina
Posts: 1.089
nedenfor kan hjælpe dig med nogle


Code:
name=`for i in dir1/*
do
	echo $i | sed 's/^\(.*\/\)\([^0-9]*\)\(.*\)/\2 \3/'
done | sort -n +1 | tail -1 | awk '{print $1""($2+1)}'`
cp file_to_be_copied dir1/$name

  #6 (permalink)  
Old 03-19-2009
Goldorakk's Avatar
Goldorakk Goldorakk is offline
Registreret Bruger
  
 

Join Date: Feb 2009
Location: Frankrig
Stillinger: 43
I Korn Shell:

Code:
#!/bin/ksh

if [ ! $# -eq 2 ]
then
        echo "Usage: $(basename $0) <filename> <target directory>"
        exit 1
fi

fname=$(basename $1)
current=$(pwd)

cd $2

lastval=$(ls $fname* 2>/dev/null |sort | tail -1 | cut -d. -f2)

if [ "$lastval" = "" ]
then
        lastval=1
else
        (( lastval = lastval + 1 ))
fi

cd $current
cp -f $1 $2/$1.$lastval

Hvis dit script er for eksempel "mycopyfile", bruge det som:

Code:
./mycopyfile FILE /path/to/files

Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 07:56 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0