Gente, é o seguinte. Tô fazendo uns scripts em Bash, comentei isso no tópico de Lingüística.
Eis o código até agora:
#!/bin/sh
echo "Transliterador cirílico-latino, por Eduardo Xavier"
echo "Licença deste programa: GPL, v3"
echo "Diga-me: em que arquivo está o texto?"
read arquivo
sed -i 's/А/A/g' $arquivo
sed -i 's/Б/B/g' $arquivo
sed -i 's/В/V/g' $arquivo
sed -i 's/Г/G/g' $arquivo
sed -i 's/Ґ/GH/g' $arquivo
sed -i 's/Д/D/g' $arquivo
sed -i 's/Е/E/g' $arquivo
sed -i 's/Ё/JO/g' $arquivo
sed -i 's/Є/JE/g' $arquivo
sed -i 's/Ж/ZH/g' $arquivo
sed -i 's/З/Z/g' $arquivo
sed -i 's/І/IH/g' $arquivo
sed -i 's/Ї/JI/g' $arquivo
sed -i 's/И/I/g' $arquivo
sed -i 's/Й/Î/g' $arquivo
sed -i 's/К/K/g' $arquivo
sed -i 's/Л/L/g' $arquivo
sed -i 's/М/M/g' $arquivo
sed -i 's/Н/N/g' $arquivo
sed -i 's/О/O/g' $arquivo
sed -i 's/П/P/g' $arquivo
sed -i 's/Р/R/g' $arquivo
sed -i 's/С/S/g' $arquivo
sed -i 's/Т/T/g' $arquivo
sed -i 's/У/U/g' $arquivo
sed -i 's/Ў/Û/g' $arquivo
sed -i 's/Ф/F/g' $arquivo
sed -i 's/Х/X/g' $arquivo
sed -i 's/Ц/C/g' $arquivo
sed -i 's/Ч/CH/g' $arquivo
sed -i 's/Ш/SH/g' $arquivo
sed -i 's/Щ/Q/g' $arquivo
sed -i 's/Ъ/YH/g' $arquivo
sed -i 's/Ы/JY/g' $arquivo
sed -i 's/Ь/Y/g' $arquivo
sed -i 's/Э/EH/g' $arquivo
sed -i 's/Ю/JU/g' $arquivo
sed -i 's/Я/JA/g' $arquivo
sed -i 's/а/a/g' $arquivo
sed -i 's/б/b/g' $arquivo
sed -i 's/в/v/g' $arquivo
sed -i 's/г/g/g' $arquivo
sed -i 's/ґ/gh/g' $arquivo
sed -i 's/д/d/g' $arquivo
sed -i 's/е/e/g' $arquivo
sed -i 's/ё/jo/g' $arquivo
sed -i 's/є/je/g' $arquivo
sed -i 's/ж/zh/g' $arquivo
sed -i 's/з/z/g' $arquivo
sed -i 's/і/ih/g' $arquivo
sed -i 's/ї/ji/g' $arquivo
sed -i 's/и/i/g' $arquivo
sed -i 's/й/î/g' $arquivo
sed -i 's/к/k/g' $arquivo
sed -i 's/л/l/g' $arquivo
sed -i 's/м/m/g' $arquivo
sed -i 's/н/n/g' $arquivo
sed -i 's/о/o/g' $arquivo
sed -i 's/п/p/g' $arquivo
sed -i 's/р/r/g' $arquivo
sed -i 's/с/s/g' $arquivo
sed -i 's/т/t/g' $arquivo
sed -i 's/у/u/g' $arquivo
sed -i 's/ў/û/g' $arquivo
sed -i 's/ф/f/g' $arquivo
sed -i 's/х/x/g' $arquivo
sed -i 's/ц/c/g' $arquivo
sed -i 's/ч/ch/g' $arquivo
sed -i 's/ш/sh/g' $arquivo
sed -i 's/щ/q/g' $arquivo
sed -i 's/ъ/yh/g' $arquivo
sed -i 's/ы/jy/g' $arquivo
sed -i 's/ь/y/g' $arquivo
sed -i 's/э/eh/g' $arquivo
sed -i 's/ю/ju/g' $arquivo
sed -i 's/я/ja/g' $arquivo
sed -i 's/’/‛/g' $arquivo
Pergunto:
1. Há alguma forma mais elegante de fazer isso, que não seja repetir o mesmo comando trocentas vezes?
2. Na última linha, quando tento substituir o apóstrofo cirílico pelo latino, dá erro do comando. Tô contornando usando outro caractere de apóstrofo, mas existe outro jeito?
3. Como faço pro arquivo original se manter intacto, e o script salvar a transliteração em outro arquivo?
4. A capitalização tá estranha - Шepeн tá sendo transliterado como SHeren. Como faço pro script "saber" se a próxima letra é minúscula e, portanto, capitalizar como "Sheren"?
[Nota: prefiro que ШEPEH continue sendo transliterado como SHEREN, não como ShEREN]