Könyvtár vagy más állomány átnevezése

Fórum: 

A feladat:

Adott egy komolyabb mennyiségű könyvtár, aminek a formátumára példa:
Magyar_népmese_-_A_boldog_család_-_Szemerédi_Bernadett
ezt kellene átalakítani
Népek_meséi_-_A_boldog_család_-_magyar_népmese_-_Szemerédi_Bernadett formába.

Ki milyen megoldást használna? A Népek_meséi előtag berakása és a Magyar_népmeséből magyar_népmese készítésétől most tekintsünk el, ez alapvetően egyszerű téma.

Ami érdekes a részek, amik jól elhatárolt - állandó elválasztóval (_-_)  - tagok, azok mozgatása már egy összetettebb feladat.

Én két megoldást tudok, ha van erre más, akkor arra lennék kíváncsi, ha pedig van grafikus megoldás, az is érdekelne.

Az rnm tudja ezt, mert a leírás szerint valami ilyennel

'/(.*)_-_(.*)_-_(.*)/\2\1\3\/'
fel lehet darabolni, majd újra, más sorrendben összerakni.

A másik megoldás a rename, awk, sed használata, ami szintén tud darabolni és más sorrendbe összeilleszteni.

Milyen más elképzelés mentén lehetne ezt megoldani?

Hát izé

Értékelés: 

0
Még nincs értékelve

Vannak a fájlmenedzserek, mint pl. DC, van továbbá a rename csomag (parancs) lásd man rename, vagy ha esetleg ez a szkript (könyvtárt nem tud, mert arra még nem gondoltam):

#!/bin/bash
SEARCH_PATH="$1"
SEARCH="$2"
REPLACE="$3"
OLDEXT="$4"
NEWEXT="$5"
if (($# < 2))
then
echo Echo "Használat: bash Frename.sh [elérési út] [Cserélnivaló] [Új névrészlet] [régi kiterjesztés] [új kiterjesztés] "
else
cd "$SEARCH_PATH"
for file in $(find . -maxdepth 1 -name "*${SEARCH}*" -type f )
do
newfile="`echo "${file%.*}" | sed s/${SEARCH}/${REPLACE}/g`.${file##*.}"
mv "$file" "$newfile"
done
if (($# > 3))
then
if [[ ${OLDEXT:0:1} == "." ]]; then echo " "; else OLDEXT=".$OLDEXT"; fi
if [[ ${NEWEXT:0:1} == "." ]]; then echo " "; else NEWEXT=".$NEWEXT"; fi
for file in $(find . -name "*$OLDEXT"); do
mv "$file" "${file%$OLDEXT}$NEWEXT"
done
fi
fi

Ezt a kódot egy Frename.sh nevű fájlba kell menteni. A használata:
bash Frename.sh mappa régi_szöveg új_szöveg [régi_kiterjesztés új_kiterjesztés]

Az első három paramétert kötelező megadni, ha a fájlok az aktuális mappában vannak, akkor az első paraméter egy pont legyen.

DC

Értékelés: 

5
Átlag: 5 (1 szavazat)

Köszi, a DC-t megnéztem, az tud ilyent :) Szuper, már lesz annyi anyag, hogy összedobjak pár ismertetőt.