我想将我的语言字母转换为英语 equalevent。它应该是这样的:
echo "İığüşöç" | <sed command>
Iigusoc
我该怎么做?编辑:我意识到,我想全部大写。
这是我的代码
#!/bin/bash
echo "İlçe seçin"
read n | <a command can make convert to english equalevent and make uppercase>
sonuc=$(w3m http://www.koeri.boun.edu.tr/scripts/lst5.asp | grep $n)
echo "$sonuc"
答案1
$ printf '%s\n' 'İığüşöç' | iconv -t ASCII//TRANSLIT
Iigusoc
适用于某些系统(//TRANSLIT
我相信来自 Solaris,但 GNU 系统也支持)。
在使用 UTF-8 作为字符映射的语言环境中,您还可以使用:
$ locale charmap
UTF-8
$ printf '%s\n' 'İığüşöç' | uconv -x Latin-ASCII
Iigusoc
另请参阅 GNUrecode
的:
$ printf '%s\n' 'İığüşöç' | recode ..ascii
Iig"us"oc
$ printf '%s\n' 'İığüşöç' | recode -f ..flat
Iigusoc
使用sed
支持正则表达式和 with 中的字符等效的实现zsh
:
$ printf -v sed_script 's/[[=%s=]]/%1$s/g\n' {a..z}
$ printf '%s\n' 'İığüşöç' | sed $sed_script
iıgusoc
(ı
不被认为属于同一同等类别i
)I
。