sed文字が英語以外の文字に変更されましたか?

sed文字が英語以外の文字に変更されましたか?

私の言語のアルファベットを英語の等価イベントに変換したいです。次のようにする必要があります。

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

sedwithで正規表現と文字同等性をサポートする実装を使用してくださいzsh

$ printf -v sed_script 's/[[=%s=]]/%1$s/g\n' {a..z}
$ printf '%s\n' 'İığüşöç' | sed $sed_script
iıgusoc

ı同じ同等のカテゴリに属する​​とは見なされません。iI

おすすめ記事