私の言語のアルファベットを英語の等価イベントに変換したいです。次のようにする必要があります。
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
GNUも参照してくださいrecode
:
$ 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