Hello,
Nem sok scriptet irtam meg linux alatt es elkellene egy kis segitseg.. szoval megkell oldanom, hogy azokat a fileoket aminek a vegen egy nagy H betu van azokat berakja egy kulon dir-be es a dir-nek olyan nevet ad amilyen datummal lett a file krealva... barmilyen otletnek orulnek vagy egy indulasi iranynak..
Koszonom.
- 1333 megtekintés
Hozzászólások
Alapnak megteszi szerintem:
for i in `find . -name "*H"` ; do DDIR=`ls -l $i |cut -d \ -f 7`; set NAME=basename $i; if [ ! -e /tmp/$DDIR ] ;then mkdir /tmp/$DDIR; fi ; cp $i /tmp/$DDIR/$NAME; done
Csak be kell másolnod egy BASH paranccsorba és megy. A tmp könyvtárba dolgozik egyelőre.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
Koszi szepen, ki is probalom meg kielemezgetem... kulonben nem tudsz valami online tutor szeruseget amibol ellehetne indulni tanulni?
Megegyszer koszi
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni
http://www.tldp.org/LDP/abs/html/
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
egesz jo csak nem csinalt valamiert direktoriumiot a file krealasi datumaval..
- A hozzászóláshoz be kell jelentkezni
Bocs, nem dolgoztam ki teljesen, maradhattak még benne hibák.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
Igy is orulok, hogy segitesz nekem ez se ment volna ilyen lazan par perc alatt
- A hozzászóláshoz be kell jelentkezni
Hja, a sok-sok windóz nélkül eltöltött idő.....
:)
Azért a fő dolgokat megcsinálja rendesen, ezen el lehet indulni.
Ha van pontosabb spec, akkor meg tudom neked csinálni készre is akár.
És csak egy sor az egész...
Kíváncsi vagyok, hogy windózon hogyan lehet az ilyesmit megoldani....
Ha van valakinek ötlete örülnék ha közölné.
Ami elől menekülnek, az után szaladnak.
- A hozzászóláshoz be kell jelentkezni
Visual basic, meg hasonló borzadályos scripting izé ott is van, viszont ami nekem kellett volna, meg ugye itt is kéne, egy date, általam megadott formátumú kimenettel -- na az ott elég sok sorba fért ki :-))
- A hozzászóláshoz be kell jelentkezni
Koszi szepen... igyekszek valahogy meg megoldani, hogy csinaljon direktoriumot is .. es szinte meg is van :) Emigy tokeletesen megtalalja a fileokat es at is masolja..
- A hozzászóláshoz be kell jelentkezni
...nem tudom de mondjuk egyszerubb lenne ha minden file nev a datummal kezdodne ev nelkul mondjuk 0714filenevH es akkor olyan direktoriumot csinalna ami az elso negy karakter a file neveben es ha mar van olyan dir akkor csak bele masolna?
- A hozzászóláshoz be kell jelentkezni
find . -name '*H' -exec sh -c 'D=`date +%Y%m%d -r {}`; mkdir $D 2>/dev/null; mv {} $D;' \;
- A hozzászóláshoz be kell jelentkezni
Koszonom, kiralyul mukodik.
- A hozzászóláshoz be kell jelentkezni
Vegulis kicsit mas scriptem lett ami igy nez ki
"
#!/bin/bash
SEARCHDIR="$1"
DESTDIR="$2"
list=$(find $SEARCHDIR -name "*[HH]*.doc" -print)
for f in $list
do
d=$(dirname $f)
ff=$(echo $f | awk -F"$d" '{ print $2}')
mydir=$(echo $ff | cut -b1-5)
mkdir $DESTDIR/$mydir
echo "Coping file: $f => ${mydir}${ff}"
cp $f $DESTDIR/${mydir}${ff}
done
"
Egy kulso filebol olvasom ki, honnan es hova masolja at a megadott filet. Csak egy problemam van vele, ha a direktorium neveben van hely pl. "ez egy dir" akkor nem muxik... mit kellene maskepp csinalnom?
Koszonom a segitseget.
- A hozzászóláshoz be kell jelentkezni
pl.:
list=$(find $SEARCHDIR -name "*[HH]*.doc" -print)
for f in $list
do
helyett:
find $SEARCHDIR -name "*[HH]*.doc" -print | while read f do
Ugyanis a for f in $list
használata esetén az f-be a $list-ből a whitespace által határolt szavak kerülnek az iterációk során.
(De egy IFS="\n" sor is ugyanugy jo lenne a for elott, de a masikat en pl. jobban szeretem:) )
- A hozzászóláshoz be kell jelentkezni
Hmm, ilyen hibauzenetet kapok..
syntax error near unexpected token `done'
googleztam ra de nem sokra mentem :)
szerkesztve..
Sikerult most mar nincs error.. de valami meg nem stimmel.. de meg atnezem koszi a segitseget
- A hozzászóláshoz be kell jelentkezni
sajnos nem megy.. lehet en vagyok bena... :) tobb mint valoszinu... azert koszonok mindent
- A hozzászóláshoz be kell jelentkezni
Muxik :)
- A hozzászóláshoz be kell jelentkezni
Nezegetem a scriptet ami most igy nez ki
#!/bin/sh
SEARCHDIR="$1"
DESTDIR="$2"
find $SEARCHDIR -name "*[TVH]*" -exec echo '{}' \; | while read LINE
do
f="$LINE"
d=$(dirname "$f")
ff=$(echo "$f" | awk -F"$d" '{ print $2}')
mydir=$(echo $ff | cut -b1-5)
mkdir $DESTDIR/$mydir
cp "$f" "$DESTDIR/${mydir}${ff}"
done
az vele a gondom, hogy nem csak azokat a fileokat masolja at amiben a TVH szerepel hanem pl. ha csak T vagy akar V vagy H van azokat is...
Mit csinaltam rosszul?
Koszi a segitseget
- A hozzászóláshoz be kell jelentkezni
Regexp hiba: a szögletes zárójel azt jelenti: a benne felsorolt bármelyik karakter. Hagyd el a TVH körüli szögletes zárójeleket.
- A hozzászóláshoz be kell jelentkezni
Koszi, kiprobalom
- A hozzászóláshoz be kell jelentkezni
Ez a hiba, csak itt ez nem regexp, hanem shell pattern.
- A hozzászóláshoz be kell jelentkezni
Szerencsére a shell pattern is pont olyan, mint a regexp :-) csak máshogy hívjuk :-P
- A hozzászóláshoz be kell jelentkezni