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-17:30 #2060621
Sajnos rekurzívan volt egy kis hiba benne. Az ls nem útvonalat ad. (Most már jó, meg kipofoztam egy kicsit.)
Valaki meg megcsinálhatná, hogy „*” patternre az eredeti kiterjesztést varázsolja oda, ne a „*”-ot. (Egyébként, hogy kell kiterjesztést másolni?)Code:#!/bin/bashLINE=””
FILE=””A=”0″
B=”0″
C=”0″
D=”0″DIR_SIGN=”false”
LOCAL_DIR=””
COMMAND=””
PATTERN=”*”
INPUT_DIR=”.”
OUTPUT_DIR=”.”
USAGE=”Usage: collect –command command [–input_dir dir] [–output_dir dir] [–pattern pattern]shorter form:
–command -c
–input_dir -i
–output_dir -o
–pattern -pFor example:
collect –command mv –input_dir „input dir” –output_dir out_dir –pattern .jpg
collect -c mv –input_dir input_dir –output_dir out_dir –pattern image_”DO_COMMAND() {
ls -1 -F -R | while read LINE; do
DIR_SIGN=”false”
DIR_TMP=`echo ${LINE} | grep „:”`if [ „${DIR_TMP}” != „” ]; then
LOCAL_DIR=`echo ${LINE} | sed ‘s/.//’ | sed ‘s/://’`
echo „”
echo „search in directory: ${LOCAL_DIR}”
DIR_SIGN=”true”;
fiif [ „${DIR_SIGN}” == „false” ]; then
if [ „${PATTERN}” == „*” ]; then
FILE=`echo ${LINE} | grep -v „/” | sed ‘s/*//’ | sed ‘/^$/d’`
else
FILE=`echo ${LINE} | grep -v „/” | grep „${PATTERN}” | sed ‘s/*//’ | sed ‘/^$/d’`
fiif [ „${FILE}” != „” ]; then
A=$[$[A]+1]
if [ $[A] -gt „9” ]; then
A=”0″
B=$[$[B]+1]
fi
if [ $[B] -gt „9” ]; then
B=”0″
C=$[$[C]+1]
fi
if [ $[C] -gt „9” ]; then
C=”0″
D=$[$[D]+1]
fi${COMMAND} „${INPUT_DIR}${LOCAL_DIR}/${FILE}” „${OUTPUT_DIR}/${DIR}picture_${D}${C}${B}${A}.${PATTERN}”
fi
fidone;
}TEST() {
if [ ${COMMAND} == „” ]; then
echo „You must specify „command” with „–command” option”
fi
}if test $# -eq 0; then
echo „${USAGE}” 1>&2
exit 1
fiwhile test $# -gt 0; do
case „$1” in
„–help”)
echo „${USAGE}” 1>&2
exit 1
;;
„-h”)
echo „${USAGE}” 1>&2
exit 1
;;
„–command”)
shift
COMMAND=”$1″
;;
„-c”)
shift
COMMAND=”$1″
;;
„–input_dir”)
shift
INPUT_DIR=”$1″
;;
„-i”)
shift
INPUT_DIR=”$1″
;;
„–output_dir”)
shift
OUTPUT_DIR=”$1″
;;
„-o”)
shift
OUTPUT_DIR=”$1″
;;
„–pattern”)
shift
PATTERN=”$1″
;;
„-p”)
shift
PATTERN=”$1″
;;
*)
echo „${USAGE}” 1>&2
exit 1
;;
esac
shift
doneTEST
DO_COMMAND2006-05-21-19:00 #2060622Pff. Ezzel csak bonyolódott számomra a probléma :icon_neutral:
2006-05-21-19:02 #2060623Mér’ már van hozzá beépített súgó is. (Egyébként nem mûködik?) Nálam speciel ment. Persze a lehetõségek száma végtelen. :)))
Viszont a ls -I meg nem mûködik normálisan… ki kellett kerülni. (De nem baj, mert így többet tud.)2006-05-21-23:01 #20606242006-05-22-05:04 #2060625(Még nem teljes, sajnos. Kéne egy kis gyors segítség. Aki tudja az elõzõ a kérdésemre a választ az ne kíméljen.)
./collect -c mv -i ~/input_dir -o ~/ouput_dir -p jpg
Ez most azt csinálja, hogy minden ~/input_dir könyvtárban és alkönyvtáraiban lévõ file-t – mely tartalmazza a „jpg” részletet (bárhol) áthelyezi picture_xxxx.jpg nevûre és behelyezi a ~/output_dir nevû könyvtárba.A parancs -cp is lehet. (echo-val pl. lehet figyelni, hogy mit csinál.)
-i, vagy -o nem kötelezõ. Elhagyásával az aktuális könyvtárból/ba történik a parancs. (Egyébként nem kíméli saját magát sem! Tehát ne rakd az átnevezendõk közé!)Ha a
Code:FILE=`echo ${LINE} | grep -v „/” | grep „${PATTERN}” | sed ‘s/*//’ | sed ‘/^$/d’`sort
Code:FILE=`echo ${LINE} | grep -v „/” | grep „.${PATTERN}” | sed ‘s/*//’ | sed ‘/^$/d’`-re változtatod, akkor „.jpg”-t keres (tehát valószínû kitarjesztést).
Pattern nélkül érvényes az összes bemeneti file-ra, viszont a kiterjesztés .* lesz, nem az eredeti.
Ezt aCode:${COMMAND} „${INPUT_DIR}${LOCAL_DIR}/${FILE}” „${OUTPUT_DIR}/${DIR}picture_${D}${C}${B}${A}.${PATTERN}”sor változtatásával lehet megoldani. Mihelyt megsúgja valaki, hogy hogy kell kiterjesztést másolni. (Vagy, majd késõbb megkeresem a netem. Legközelebb este… akkor majd folytatom a sriptet. Ha meg, majd tezsteltük és jól megy, akkor elmondom, hogy mi mit csinál.)
„./renna -c mv -i /home/csablak/.próba/superfoto/konvert -o /home/csablak/.próba/superfoto/ide -p image_”
Erre meg „image_” tartalmú file-t keres, amit valószínû nem talál. (A .-nak az elérési útvonalban szerepe van! Ha a próba nem egy rejtett file – tehát nem tartalmaz pontot -, akkor töröld!)2006-05-22-10:59 #2060626A .próba egy rejtett könyvtár.
Vizsla találtam egy ilyet:
http://www.icewalkers.com/Linux/Software/521850/BatRen.htmlHátha ez segít nekünk.
2006-05-22-15:19 #2060627A miénk már többet tud. (Bár a létezik nem létezikkel nem törõdik, amíg az igen. Majd késõbb.)
Bár egy kissé bonyolult (inkább azt mondom célszerûtlen), úgyhogy, majd célszerûsíteni kell.Egyelõre most ezt tudja:
Code:USAGE=”Usage: collect –command „command [%s] [%d]” [–src_dir dir1:[dir2…]] [–dst_dir dir] [–dst_name name] [–pattern pattern] [–list_all] [–list_rec] [–num_size numeric_size]
–command unix command
%s source parameter of command
%d destination parameter of command
–src_dir source directory or directories
–dst_dir destination directory
–dst_name destination filename
–pattern filter for source files (no joker chs. are available)
–list_all include files with a name starting with ‘.’ in the listing
–list_rec recursively list subdirectories encountered
–num_size size of numeric string at the end of filename in char (upto 6, default is 4)shorter form:
–command -c
–src_dir -s
–dst_dir -d
–dst_name -n
–pattern -p
–list_all -a
–list_rec -R
–num_size -eFor example:
collect -c cp -s src_dir1:src_dir2 -d out_dir -p .jpg -n image -R -e 6
collect -c mv -s src_dir -d dst_dir -p manual -n document_
collect -c „echo dest: %d src: %s””A legutóbbi változat…
2006-05-22-18:27 #2060628Hi Vizsla!
Jelenleg erre a parancsra
./collect -c cp -s /mnt/winswap/Temp/innen -d /mnt/winswap/Temp/ide -p .jpg -n picture_ -R -e 3
a következõ üzenetet kapom :
search in directory /mnt/winswap/Temp/innen/:
cp: `/mnt/winswap/Temp/ide/picture_001.jpg’: specified destination directory does not exist2006-05-22-19:05 #2060629„/mnt/winswap/Temp/ide” könyvtár nem létezik. Mindjárt módosítom, hogy hozza létre, ha nem létezik, mert a cp nem tudja létrehozni.
2006-05-22-19:08 #2060630Persze, ez felvet mégtöbb problémát, mert mi van, ha létezik (vagy valamelyik tagja) és az file. (Na, majd szép sorjában. :))
-
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.
legutóbbi hsz