한 번에 여러 대체 규칙을 sed

한 번에 여러 대체 규칙을 sed

windows-1252windows-1251 다음과 같은 매핑을 수행하고 싶습니다 .
sed 's/[ÉÖÓÊÅÍÃØÙÇÕÚÔÛÂÀÏÐÎËÄÆÝß×ÑÌÈÒÜÁÞ¸éöóêåíãøùçõúôûâàïðîëäæýÿ÷ñìèòüáþ]/[ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБёйцукенгшщзхъфывапролджэячсмитьбю]/g' input.py > input.py

다음과 같이 문자를 하나씩 바꿀 수 있습니다.

sed 's/î/о/g'  input.py > output1.py
sed 's/è/и/g'  output1.py > input.py

그러나 한 번에 모든 문자를 수정하는 문자 매핑 구문은 무엇입니까?

답변1

그것이 tr목적입니다. 이것이 실제로 변경하려는 문자이고 인코딩 문제가 아니라고 가정하면 필요한 것은 다음과 같습니다.

tr '¨ÉÖÓÊÅÍÃØÙÇÕÚÔÛÂÀÏÐÎËÄÆÝß×ÑÌÈÒÜÁÞ¸éöóêåíãøùçõúôûâàïðîëäæýÿ÷ñìèòüáþ' \
   'ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮёйцукенгшщзхъфывапролджэячсмитьбю' < input.py > output.py

그러나 나는 당신이 원하는 것이 문자가 아닌 파일의 인코딩을 변경하는 것이라고 생각합니다. 샘플 파일 없이는 이것을 테스트할 수 없지만 아마도 다음과 같을 것입니다.

 iconv -f windows-1252 -t windows-1251 input.py > output.py

관련 정보