Kezdőlap › Fórumok › Debiannal kapcsolatos kérdések › mmv
- This topic has 53 hozzászólás, 5 résztvevő, and was last updated 19 years, 1 months telt el by
csablak.
-
SzerzőBejegyzés
-
2006-05-21-12:41 #2060611
Nem tudom, én ezt bash-al oldanám meg.
Bemenet – ls limenete.
Kimenet – picture_[bash_variable] (ciklusban növelve; ha 00x kell akkor meg 3 ciklus)
Ha ez így megfelel…(Külön külön mindkét részfeladatra van/volt is nekem script… talán megtalálom – mert fájdalmas lenne gondolkodnom. Egyébként összedobják szerintem neked. :))))
2006-05-21-12:49 #2060612Na, el is készült:
Code:#!/bin/bashFILE=””
X=”0″
Y=”0″
Z=”0″for FILE in `ls -F | grep -v „/” | cat`; do
X=$[$[X]+1]
if [ $[X] -gt „9” ]; then
X=”0″
Y=$[$[Y]+1]
fi
if [ $[Y] -gt „9” ]; then
Y=”0″
Z=$[$[Z]+1]
fiecho „${FILE}” „picture_${Z}${Y}${X}.jpg”
done
Az mv helyére echo-t tettem, hogy tesztelni lehessen.
2006-05-21-13:46 #2060613Köszi.
Bár jó lenne ha jobban is értenék is hozzá.Ha a forrásfájlban szóköz van akkor nem megy.
Tettem bele egy IFS=„ parancsot az elejére, de ebben az esetben ez nem mûködik. 🙁2006-05-21-13:54 #2060614„Ha a forrásfájlban szóköz van akkor nem megy.”
Valóban, ahhoz a fileokat „”-be kéne egyenként tenni, mert ugye a file-ok között a space az elválasztó. Ezen még gondolkozni kell, hogy hogy lehetne egyenként beolvasni.„Tettem bele egy IFS=„ parancsot az elejére, de ebben az esetben ez nem mûködik”
Ezt meg nem értem.2006-05-21-14:22 #2060615Mindenesetre a módosított:
Code:ls -1 -F | grep -v „/” | grep -v „:” | sed ‘s/*//’ | while read FILE; do
X=$[$[X]+1]
if [ $[X] -gt „9” ]; then
X=”0″
Y=$[$[Y]+1]
fi
if [ $[Y] -gt „9” ]; then
Y=”0″
Z=$[$[Z]+1]
fiecho „”${FILE}”” „picture_${Z}${Y}${X}.jpg”
done;
Jó a space-t tartalmazó file-okra és kihagyja az átnevezésbõl az esetleges könyvtárakat.
2006-05-21-14:26 #2060616Ez még mindig nem nevezi át a könyvtárakat, viszont rekurzív – tehát, a forráskönyvtár minden egyes file-jára (a könyvtárak könyvtárában is) kihat. (Az eredmény átnevezés és egy könyvtárba való rendezés.)
Code:ls -1 -F -R | grep -v „/” | grep -v „:” | sed ‘s/*//’ | sed ‘/^$/d’ | while read FILE; do
X=$[$[X]+1]
if [ $[X] -gt „9” ]; then
X=”0″
Y=$[$[Y]+1]
fi
if [ $[Y] -gt „9” ]; then
Y=”0″
Z=$[$[Z]+1]
fiecho „”${FILE}”” „picture_${Z}${Y}${X}.jpg”
done;
2006-05-21-14:27 #20606172006-05-21-14:34 #2060618csak egy ötlet, az alapkoncepció hasonló:
http://www.itport.hu/cikk/1752006-05-21-14:41 #2060619A szóközzel most már nincs gond a „-1” paraméter miatt. Mert az már „n”-t hazsnál ” ” helyett. elválasztó karakternek 🙂
Viszont ezt a sort:
ls -1 -F -R | grep -v „/” | grep -v „:” | sed ‘s/*//’ | sed ‘/^$/d’ | while read FILE; do
akár meg is megpróbálhatnád tömöríteni. (Csak hogy átláthatóbb legyen. :)))))2006-05-21-15:36 #2060620Skacok, lefuttatom a dolgot, és ugye az echo miatt csak ennyit ír ki:
gyuszk@jupiter:~/Szorakozas/Kepek/Csajok$ ./atnevezes
„atnevezes” picture_1.jpg
„blue_shirt_long_legs_stock_4_by_raine_angelstock.jpg” picture_2.jpg
„_Don__t_Forget_To_Write__v1_by_coldpoisonedheart.jpg” picture_3.jpg
„Family_Ties_by_water_fairy.jpg” picture_4.jpg
„having_fun_stock_12_by_raine_angelstock.jpg” picture_5.jpg
„having_fun_stock_7_by_raine_angelstock.jpg” picture_6.jpg -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz