Segítségeteket kérném! Ne nevessetek ki, tudom, hogy alap, de sehogy sem boldogulok vele.
Van egy lista TXT fájlom, ami a következőképpen néz ki:
"aaa";"akarmi.jpg,valami.gif,megvalami.png"
"bbb";"fajl.jpg"
"ccc";"ezjokep.jpg,ezisjokep.png"
A feladatom az lenne, hogy átmásolni és egyben átnevezni a lista segítségével egy másik mappába a fenti fájlokat valahogy így:
aaa_00.jpg
aaa_01.gif
aaa_02.png
bbb_00.jpg
ccc_00.jpg
ccc_01.png
Előre is köszönöm!
Update1: Nincs speciális karakter, ékezet, vessző, pontosvessző a fájlnevekben.
- 1546 megtekintés
Hozzászólások
Melyik intézmény melyik szakának melyik tantárgyi beadandója?
- A hozzászóláshoz be kell jelentkezni
Nem ilyen téma. Saját célra kellene, fotókat rendezgetni. Több tízezer képről van szó, és amivel elkészítettem a txt fájlt (Drupal views) ott nem tudom "összekattintgatni", hogy létre is hozzon egy másolatot ezekből a fájlokból a fenti elnevezés alapján. Bocs, hogy ilyen alap dolgokkal zaklatlak benneteket. Ne nevessetek ki! Köszi.
- A hozzászóláshoz be kell jelentkezni
Ha már ilyen CSV-nek néz ki, képletezd be Excel-ben vagy valami hasonlóban, hogy generáljon neked cp parancsokat, és az eredményt másold be shellbe :).
Amúgy annyira nem vicc, pont az szokott a baj lenni az ilyen fájloknál, ha van speckó karakter (erről semmit nem írtál), és ha véletlenül szabványos CSV, akkor tényleg a fentebb írt megoldás a leggyorsabb.
- A hozzászóláshoz be kell jelentkezni
Ennek a kimenetét lehet szkriptként felhasználni, és - mint ilyenkor mindig - imádkozni azért, hogy ne legyen túl elegáns, vagy túl elegánsra tervezett nevű kép (vesszős, pontosvesszős, hogy csak a két triviálisat említsem):
awk -F'";"' '{ gsub(/^"|"$/, ""); n=split( $2, a, /,/); for( i=0; i<n; ++i) { ext = a[i+1]; sub( /.*\./, "", ext); printf "mv \"%s\" \"%s_%02d.%s\"\n", a[i+1], $1, i, ext}}' <lista.txt >szkript.sh
- A hozzászóláshoz be kell jelentkezni