Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: martin.nohejl 13 Prosince 2011, 21:50:01
-
Všechny zdravím, chci se zeptat, jestli jde nějak jednoduše hromadně opakovaně odstranit v názvech souborů háčky, čárky a mezery.
Například přejmenovat soubor S Maruškou na zahradě.jpg na S_Maruskou_na_zahrade.jpg.
Zkoušel jsem program KRENAME, kde jsem objevil, že můžu hromadně změnit znaky za znaky jiné, ale musel bych tam všechny vypsat (á za a, c za č, d za ď, ...) a když chci postup třeba na druhý den opakovat (např u jiných souborů) musím znova náhrady vypsat. Nedá se to nějak uložit, aby si to krename pamatoval? Nebo znáte někdo lepší způsob?
-
Může být v Terminál (http://wiki.ubuntu.cz/Termin%C3%A1l)u?
$ echo "S Maruškou na zahradě.jpg" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr ' ' '_'
S_Maruskou_na_zahrade.jpg(převede do ascii s transliterací ě → e apod., mezery zvlášť pomocí tr)
-
Tak jsem to zkoušel dle uvedeného postupu:
1. následující příkaz terminálu ($ echo "S Maruškou na zahradě.jpg" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr ' ' '_') mi pouze přejmenovaný název zobrazí v terminálu, ale ve skutečnosti ho nepřejmenuje.
2. Nevím jak donutit, aby mi to provedlo nejen na zadaný soubor, ale třebas na všechny soubory v daném adresáři
-
Obávám se, že nativní aplikace pro Linux se bude hledat obtížně.
Totéž jsem řešil před časem pomocí jakéhosi freeware . už nevím, jak se to jmenovalo, není to ten soft uvedený níže. - ale to jsem řešil pomocí Wokenního stroje, kvůli Truecrypt, ten má totiž nekompatibilní kódování mezi Windows a Linuxem. :(
Zkuste toto http://www.softpedia.com/get/System/File-Management/Diacritics-Remover.shtml
rozjet pod Wine. (nemám zkušenosti, ale mělo by to chodit, je to jenom práce z filesystémem). Případně to udělejte z Wokenního stroje přes síť.
-
Výborné je Krename (je z KDE, takže si s sebou vezme "pár" balíků) - před instalací doporučuji v Synapticu vypnout volbu "Povazovat doporučené balíky za závislé".
Pokud používáš Krusader, tak se s ním Krename spáruje.
-
Krusader s Krename používám, jen nevím jak v něm mám nastavit to hromadné odstranění háčků a čárek. Umím jen nastavit nahrazení jednotlivých znaků a to tak, že postupně zadám nahraď á za a, č za c, ď za d, ... v tom by nebyl problém, ale štve mne, že si to ten krename do příště nezapamatuje a musím to zadávat příště znovu, nebo alespoň nevím, jak donutit Krename, aby si to příště pamatoval. :'(
-
Tak jsem to zkoušel dle uvedeného postupu:
1. následující příkaz terminálu ($ echo "S Maruškou na zahradě.jpg" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr ' ' '_') mi pouze přejmenovaný název zobrazí v terminálu, ale ve skutečnosti ho nepřejmenuje.
2. Nevím jak donutit, aby mi to provedlo nejen na zadaný soubor, ale třebas na všechny soubory v daném adresáři
Pokud chci přejmenovat soubory v adresáři /adresar
find /adresar -maxdepth 1 -type f | while read F; do name="$(echo "$(basename "$F")" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr ' ' '_')"; cp "$F" "/tmp/$name"; done
Tento skript soubory jen zkopíruje (přejmenované) do adresáře /tmp (kvůli kontrole).
Pokud funguje ke spokojenosti, nahraď příkaz cp příkazem mv -i a adresář /tmp adresářem /adresar.
-
Krusader s Krename používám, jen nevím jak v něm mám nastavit to hromadné odstranění háčků a čárek. Umím jen nastavit nahrazení jednotlivých znaků a to tak, že postupně zadám nahraď á za a, č za c, ď za d, ... v tom by nebyl problém, ale štve mne, že si to ten krename do příště nezapamatuje a musím to zadávat příště znovu, nebo alespoň nevím, jak donutit Krename, aby si to příště pamatoval. :'(
Když spustíš krename, tak na tabu "Filename" (rozšířený) je vlevo nahoře tlačítko "funkce" - asi třetí položka seznamu je transliterace (přepísmenkování).
-
Ještě bych doporučil vyzkoušet program detox. Pomocí přepínače -n lze vyzkoušet, jak by to dopadlo.
-
Postup:
Pokud chci přejmenovat soubory v adresáři /adresar
find /adresar -maxdepth 1 -type f | while read F; do name="$(echo "$(basename "$F")" | iconv -f UTF-8 -t ASCII//TRANSLIT | tr ' ' '_')"; cp "$F" "/tmp/$name"; done
Tento skript soubory jen zkopíruje (přejmenované) do adresáře /tmp (kvůli kontrole).
Pokud funguje ke spokojenosti, nahraď příkaz cp příkazem mv -i a adresář /tmp adresářem /adresar.
funguje
Postup:
Když spustíš krename, tak na tabu "Filename" (rozšířený) je vlevo nahoře tlačítko "funkce" - asi třetí položka seznamu je transliterace (přepísmenkování).
Také funguje.
Ještě by tě při této příležitosti zajímalo, jak můžu, tentokráte to potřebuju v terminálu, hromadně přepsat příponu u všech souborů v zadaném adresáři (např adresář skripty obsahuje soubory *.txt a já je chci přepsat na soubory *.sh, případně tuto příponu úplně zrušit)
-
for i in *.txt; do mv "$i" "${i%.txt}.sh"; done
-
Doporučuji aplikaci pyRenamer. Zvládne vše, co požadujete.