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

Název: Hromadné odstranění háčků a čárek v názvu
Přispěvatel: 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?
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: daysleeper 13 Prosince 2011, 22:10:04
Může být v Terminál (http://wiki.ubuntu.cz/Termin%C3%A1l)u?
Kód: [Vybrat]
$ 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)
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: martin.nohejl 16 Prosince 2011, 22:27:29
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
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: RNA 16 Prosince 2011, 22:42:51
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íť.
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: Martin Šácha 16 Prosince 2011, 22:46:44
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.
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: martin.nohejl 16 Prosince 2011, 22:58:09
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. :'(
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: daysleeper 16 Prosince 2011, 23:05:20
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
Kód: [Vybrat]
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.
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: Martin Šácha 16 Prosince 2011, 23:33:04
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í).
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: keramo 19 Prosince 2011, 18:34:58
Ještě bych doporučil vyzkoušet program detox. Pomocí přepínače -n lze vyzkoušet, jak by to dopadlo.

Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: martin.nohejl 19 Prosince 2011, 22:00:36
Postup:
Pokud chci přejmenovat soubory v adresáři /adresar
Kód: [Vybrat]
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)
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: pacholik 20 Prosince 2011, 13:09:48
Kód: [Vybrat]
for i in *.txt; do mv "$i" "${i%.txt}.sh"; done
Název: Re:Hromadné odstranění háčků a čárek v názvu
Přispěvatel: vidocqcz 20 Prosince 2011, 23:47:40
Doporučuji aplikaci pyRenamer. Zvládne vše, co požadujete.