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

( ı동일한 동등한 범주에 속하는 것으로 간주되지 않습니다 . i)I

관련 정보