Dá se tento problém nějak obejít nebo je to v bashi neřešitelné a musím použít python, perl? Já už si na bash začínám zvykat a učit si jiný jazyk, kterému vůbec nerozumím se mi moc nechce.Většina věcí se dá obejít. Otázka je, jestli to z to stojí. I podle tvých minulých příspěvků se mí zdá, že se snažíš dělat věci, který jsou pro bash už tak trochu na hraně. Naučit se aspoň základy třeba pythonu by sice chvilku trvalo, ale pokud se skriptování chceš věnovat déle než v řádu řekněme týdnů, tak se to do budoucna určitě vyplatí. Opisovat bordel z ChatGPT do pythonu by nemělo být o moc jiný než ho opisovat do bashe :-)
local input=$1
local output=""
local length=${#input}
for (( i = 0; i < length; i++ )); do
local char=${input:i:1}
local replacement=${replacements[$char]}
output+="${replacement:-$char}"
done
iconv -f <původní-kódování> -t UTF-8 <vstupní-soubor> -o <výstupní-soubor>
output=$(echo "$input" | iconv -f UTF-8 -t UTF-8//TRANSLIT -c "$map_file")
echo "$output"
replacements = {
'á': 'a',
'č': 'c',
'ř': 'r',
}
def funkce(input):
output = ''
for char in input:
replacement = replacements.get(char) or char
output += replacement
return output
print(funkce('břicháč'))
def funkce(input):
return ''.join(replacements.get(char, char) for char in input)
Chápu, že konstruktivní rady spíše ignorujete a jedete si tady pořád to svoje o copy-pastování AI kódu, kterému nerozumíte, ale v pythonu by to fakt nebyla žádná raketová věda:
replacements = {
'á': 'a',
'č': 'c',
'ř': 'r',
}
def funkce(input):
output = ''
for char in input:
replacement = replacements.get(char) or char
output += replacement
return output
print(funkce('břicháč'))
(Nebo teda méně čitelná, ale kratší verze té funkce)
def funkce(input):
return ''.join(replacements.get(char, char) for char in input)
>>> str = "břicháč"
>>> str
'břicháč'
>>> replacements = str.maketrans("áčř", "acr")
>>> replacements
{225: 97, 269: 99, 345: 114}
>>> str_translated = str.translate(replacements)
>>> str_translated
'brichac'
Teď řeším ještě úplně jiný problém, ten se netýká programování, ale zobrazení kódu. Otevírám js soubor na internetu a nezobrazuje se mi tam utf-8 kodování, ačkoliv to je psané v utf-8. Kvůli tomu, když chci zkopírovat znaky, nezobrazují se správně. Firefox to asi vidí jako Windows-1250. Tedy když to zkopíruju do subl nebo do xedu, mám tam nesprávné znaky. A nevím jak to dát zpět. Druhá možnost co mohu zkusit je zkopírovat to v PSPadu, kde se to zobrazuje správně a vložit to do linuxu ve správném kódování. Ale tohle neřeší můj problém do budoucna. Prostě nevím jak v FF zobrazit ty správné znaky a v xedu a sublu mi to taky nejde.https://support.mozilla.org/en-US/kb/text-encoding-no-longer-available-firefox-menu