Portál AbcLinuxu, 8. května 2025 13:24

Dotaz: přejmenovat názvy souborů do ASCII pomocí recode

15.4.2009 14:32 jirikon
přejmenovat názvy souborů do ASCII pomocí recode
Přečteno: 363×
Odpovědět | Admin

Podobné záležitosti se tu řešily víckrát. Nevím proč echo a mv mají jiný výstup.

1.

touch ěščřžýáíé

for file in ěš* ; do echo "$file" "$(echo $file | recode UTF-8..BS )"; done

výstup v konzoli je: ěščřžýáíé escrzyaie

2.

for file in ěš* ; do mv "$file" "$(echo $file | recode UTF-8..BS )"; done

výstupní název souboru je: escrz\'^Hy\'^Ha\'^Hi\'^He

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

15.4.2009 15:00 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: přejmenovat názvy souborů do ASCII pomocí recode
Odpovědět | | Sbalit | Link | Blokovat | Admin
Protože BS není „odstranění diakritiky“, ale její zakódování pomocí znaku Backspace (ASCII 7-bits, BS to overstrike). Zkuste jít v odkazovaném dokumentu o jednu úroveň výše a tam najdete seznam ASCII kódování. Asi vás bude zajímat „flat“.
15.4.2009 16:08 jirikon
Rozbalit Rozbalit vše Re: přejmenovat názvy souborů do ASCII pomocí recode

ono to hlasilo pri flat hlasku: recode: Ambiguous output in step `UTF-8..ISO-8859-1',

tak je tam třeba přidat parametr --force

for file in ěš* ; do mv "$file" "$(echo $file | recode -f UTF-8..flat )"; done

diky

 

16.4.2009 08:18 jirikon
Rozbalit Rozbalit vše Re: přejmenovat názvy souborů do ASCII pomocí recode
Odpovědět | | Sbalit | Link | Blokovat | Admin

Proč jsem to potřeboval?

Měl jsme české názvy souborů ve tvaru 'Háčky A Čárky Nechci' (Camelcase muzete udelat bulkrename v thunaru)

a pak se staci zbavit diakritiky a mezer

for file in * ; do mv "$file" "$(echo $file | recode -f UTF-8..flat | tr -d ' ' )"; done

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.