The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > UNIX for dummyer Spørgsmål & svar
.
google unix.com



UNIX for dummyer Spørgsmål & svar Hvis du ikke ved, hvor man skal sende en UNIX-eller Linux-spørgsmål, efter det her. Alle UNIX og Linux newbies velkommen!

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
Behov finde en fil baseret længde J_ang UNIX for dummyer Spørgsmål & svar 8 03-26-2007 09:21 AM
hvordan man kan flytte filer i forskellige mapper baseret på filnavn italia5 UNIX for dummyer Spørgsmål & svar 7 08-23-2006 11:04 AM
Hvordan vil jeg gøre en finde kommandoen ikke vise vejen til en fil? LordJezo Shell Programmering og Scripting 1 10-01-2004 07:01 AM
finde filename baseret på fil indhold kollerj UNIX for dummyer Spørgsmål & svar 4 06-02-2001 02:31 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 04-18-2007
Helmi Helmi is offline
Registreret Bruger
  
 

Join Date: Apr 2007
Stillinger: 15
Find, fabrikat og flytte fil baseret på brugernavn

Hej!
Jeg er ny til UNIX (lige 3month anvendes),
Jeg fandt min nye boksen indeholdt en masse filer og mapper i / home / boks /
Jeg har prøvet at søge script i tis forum og fundet mange af dem, men jeg ved ikke,
hvordan man kan kombinere dem til at gøre et script, men ved hjælp af rør.
mine opgaver er:

1) at scanne bruger dir in / home / user / - I'm anvendes ls-ld / home / $ bruger / , $ Bruger skal være nøglen i.

2) Så, gruppering alle filer i scannet dir (i opgave 1), i en gruppe af extensions såsom ". Txt", ". Sh", ". Dat"
Jeg brugte ls-l | awk 'BEGIN (FS \u003d"."} (print $ 2)'> index.txt

3) Baseret på index.txt, jeg skal gøre abonnentfortegnelser henvise til disse udvidelser f.eks.
/home / user / txtExtension
/ home / user / datExtension /

derefter flytte alle filer til deres forlængelse dir. Jeg er ked af, jeg kan ikke finde vejen til at skabe dette script.

Jeg prøvede alle mit bedste for at kombinere alle ovenstående simpelt script, men No.3 er ret svært for mig.
er der nogen UNIX-Shell ekspert har ideer, løsninger eller endog eksempel scripts til at guide mig
Hilsen,
Helmi.
  #2 (permalink)  
Old 04-19-2007
ennstate ennstate is offline
Registreret Bruger
  
 

Join Date: Mar 2007
Sted: Chennai
Stillinger: 222
Flytning af filer ved Indeks

Jeg testet nedenfor scriptet ved at skabe brugermapper under / tmp med forskellige typer af filtypenavne


Code:
#!/bin/ksh
 
 /bin/rm index.dat
 
 set -A USER_HOME  /tmp/UserA /tmp/UserB /tmp/UserC /tmp/Root /tmp/GroupA /tmp/GroupB
 set -A USERS UserA UserB UserC Root GroupA GroupB
 
 for v in   ${USERS[*]} ; do
   find /tmp/$v -type f | awk -F. ' (NF == 2 ){ print $2 }' | sort -ud | tee -a index.dat
 done
 
 for type in $(<index.dat); do
   NewDir=/tmp/${type}-IndexedFileDir
   mkdir -p $NewDir
   find ${USER_HOME[*]} -type f -name "*.$type" -print | xargs -I{} -t mv {} ${NewDir}
 done

Kontroller ovenstående script ved at køre det på nogle falske abonnentfortegnelser og lad os vide, hvis denne doesnot hjælpe.

Tak
Nagarajan Ganesan
  #3 (permalink)  
Old 04-19-2007
Helmi Helmi is offline
Registreret Bruger
  
 

Join Date: Apr 2007
Stillinger: 15
Åh, mand ... så cool ennstate
Thanks a lot PAL!
det hele fungerer godt! men der er noget, jeg savnede i første,
hvis visse fil fjernes uden "mærke / beder om tilladelse til at flytte" brugeren eller rod, er det virkelig generende for andre brugere at spore tilbage og måske de forventede filerne var blevet slettet.

for anden gang, er der nogen, kan coupe dette problemer, måske ved at foretage en vis tracker log eller sådan noget?

Hilsen,
Helmi.
  #4 (permalink)  
Old 04-19-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 2557

Code:
#!/bin/sh
awk -v user="user1" ' BEGIN {  path = " /home/" user "/";command = "ls" path ;
              while ( (command | getline line)>0 ) {                          
                            if (line ~ /\....$/) {
                                          ext = substr(line,length(line)-2)
                                          Extension[ext]    
                                          files[line] = ext
                            }                            
              }
            }
        END {   makedircmd = "mkdir "
                for ( e in Extension) {
                     print "making " path e                     
                     dir = path e
                     makedircmd = makedircmd dir                                      
                     print makedircmd
                 }
                 #system(makedircmd) #uncomment to use
                 for (f in files) {
                            mvcmd = "mv" path f " " path files[f]
                            traceback = "mv" path files[f] "/" f path 
                            print traceback
                            print traceback >> "backup.sh" #backup
                            #system(mvcmd) #uncomment to use
                 }
        }

' "file"

et forsøg på i awk. du kan bruge backup.sh at flytte tilbage disse filer til oprindelige mappe.
  #5 (permalink)  
Old 04-19-2007
Helmi Helmi is offline
Registreret Bruger
  
 

Join Date: Apr 2007
Stillinger: 15
Jeg har redigeret script på
Code:
user="TEST" ' BEGIN {  path = " /home/rosman/" user "/";command = "ls" path

Når testen er en test dir som indeholdt den 1. foretaget af ennstate

FYI, jeg ikke logge ind som root, derfor kan jeg ikke adduser. Så jeg lige lavet en dummy dir til testning. Fejlen tilstand var
Code:
[rosman]: /home/rosman/TEST => backup.sh
awk: 0602-533 Cannot find or open file file.
 The source line number is 1.

Og jeg går ud fra, at det var i den første linje i awk. Enhver antydning af, hvordan man kan løse dette?

Hilsen,
Helmi
  #6 (permalink)  
Old 04-19-2007
ghostdog74 ghostdog74 is offline Forum Advisor  
Registreret Bruger
  
 

Join Date: Sep 2006
Stillinger: 2557
ikke sikker, men du kan prøve

Code:
..
print traceback > "backup.sh" ( single > )
...

FYI, jeg bruger GNU awk. også sørge for at skrive er givet adgang til TEST bibliotek.
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 12:41 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