내 언어 알파벳을 영어 동등 이벤트로 변환하고 싶습니다. 다음과 같아야 합니다.
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