Portál AbcLinuxu, 8. května 2025 13:24
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
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
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
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.