ioask4it
Membru
|
 |
« on: March 21, 2009, 11:37:03 AM » |
|
doresc sa redenumesc fisierele de ieri, adaugand in fata numelui data fisierului find /test -name "pattern" -type f -mtime 0 -exec  ?? si aici apare problema deci daca am fisierul a.txt din data de 20 martie sa fie sub forma 03-20-a.txt Multumesc
|
|
|
|
|
Logged
|
|
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #2 on: March 21, 2009, 12:57:43 PM » |
|
facui dar mai departe de
find /mnt/videos -name "Jurnal*.mpg" -type f -mtime 0 | \ awk '\ { cate = split($0, caleSplit, "/") fisier = caleSplit[cate] cale = substr($0, 0, index($0, fisier) - 1)
print "fisierul=" fisier " are calea=" cale }'
nu reusii
|
|
|
|
|
Logged
|
|
|
|
|
gheorghe
Veteran

|
 |
« Reply #3 on: March 21, 2009, 01:21:12 PM » |
|
Vezi exemplele astea: http://en.wikipedia.org/wiki/XargsN-am vazut nimic asemanator cu ce ai tu, dar cred ca xargs e mai ok, pentru ca poate sa lucreze corect cu fisiere cu spatii in nume. Si anume asa: find /path -type f -print0 | xargs -0 etc etc
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #4 on: March 21, 2009, 04:48:34 PM » |
|
cred ca mai bine awk si la el, apelez mai departe system(mv...) multam
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #5 on: March 21, 2009, 07:28:48 PM » |
|
find /mnt/videos -name "Jurnal*.mpg" -type f -mtime 0 | \ awk '{ print "processing " $0 splitnr = split($0, splitrez, "/") filename = splitrez[splitnr] path = substr($0, 1, index($0, filename) - 1) print "filename=" filename print "path=" path print "cp " $0 " /videos/" filename
}'
dar am o problema daca filename are spatii imi va da eroare, pentru asta trebuie sa il bag intre " DAR nu reusesc!!!!
|
|
|
|
|
Logged
|
|
|
|
|
~Empathy~
Veteran

Decadence is Bliss...
|
 |
« Reply #6 on: March 21, 2009, 08:10:00 PM » |
|
Ți-a zis gheorghe mă ce trebuie să faci...
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #7 on: March 21, 2009, 10:08:34 PM » |
|
am aflat de unul singur, dar mai am ceva de imbunatatit iar scriptingul.... pur si simplu nu am folosit pana acuma defapt am dorit sa renunt la programul in java in detrimentul comenzilor native
|
|
|
|
|
Logged
|
|
|
|
|
gheorghe
Veteran

|
 |
« Reply #8 on: March 22, 2009, 02:31:34 AM » |
|
Sunt sigur ca dupa ce o sa te dea afara, cel care va trebui sa mentina programul o sa te iubeasca.
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #9 on: March 22, 2009, 11:15:47 AM » |
|
pai daca nu stiu scripting trebuia sa ma adaptez nu? Dar uite ca am invatat!!! (Cat imi este necesar) #!/bin/sh # copy_files.sh
echo "Copy files" for file in `find /mnt/videos -name "pattern" -mtime 0`; do if [[ -e $file ]]; then timestamp=`ls -l --time-style=+%Y-%M-%d $file | cut -d' ' -f6` path=`echo $file | awk '{ splitnr = split($0, path, "/") print substr($0, 1, index($0, path[splitnr]) - 1) }'` file=`echo $file | awk '{ splitnr = split($0, path, "/") print path[splitnr]; }'` newfile=`echo $timestamp\_$file` cp -v /mnt/videos/$file /videos/$newfile fi done;
Trebuie doar sa mai rezolv problema spatiilor din numele fisierelor
|
|
|
|
|
Logged
|
|
|
|
|
~Empathy~
Veteran

Decadence is Bliss...
|
 |
« Reply #10 on: March 22, 2009, 11:52:54 AM » |
|
Tot nu vrei să citești despre xargs ăla...
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #11 on: March 22, 2009, 01:16:22 PM » |
|
#!/bin/sh # copy_files.sh echo "Copy files" find /mnt/videos -type f -name "Jurnal*.mpg" -mtime 0 -print0 | while read -d $'\0' file do timestamp=`ls -l --time-style=+%Y-%M-%d "$file" | cut -d' ' -f6` path=`echo $file | awk '{ splitnr = split($0, path, "/") print substr($0, 1, index($0, path[splitnr]) - 1) }'` file=`echo $file | awk '{ splitnr = split($0, path, "/") print path[splitnr]; }'` newfile=`echo $timestamp\ $file` cp -v "/mnt/videos/$file" "/videos/$newfile" done;
pai din pacate nu reusii sa-l folosesc. Ma blocai cand il folosii, dar uite ca ajunsai la alta varianta care nu are bug-uri la spatii. Daca doriti, puneti voi o varianta cu xargs
|
|
|
|
|
Logged
|
|
|
|
|
~Empathy~
Veteran

Decadence is Bliss...
|
 |
« Reply #12 on: March 22, 2009, 05:00:13 PM » |
|
find . -type f -print0 | xargs -0 -Iarg echo arg | sed -e 's/.\///' | tr "\n" "\0" | xargs -0 -Iarg mv arg `date "+%Y%m%d%H%M%S"`\ -\ arg
|
|
|
|
|
Logged
|
|
|
|
|
ioask4it
Membru
|
 |
« Reply #13 on: March 22, 2009, 06:47:27 PM » |
|
dap, si nu are buguri gen pauze sau \ Multumesc mult & scuze de deranj
|
|
|
|
|
Logged
|
|
|
|
|
|
oblio
|
 |
« Reply #14 on: March 22, 2009, 07:02:07 PM » |
|
Cred ca poti sa bagi in sed-ul ala si tr-ul, merg mai multe operatii la aceeasi rulare.
|
|
|
|
|
Logged
|
Distribuţie: ubuntu | Localitate: Bucureşti | Vārstă: 24
Oh! Everything has a point, and if it doesn't, then there's a point to it. Oblio's
|
|
|
|
|