一度に複数の代替ルールを設定

一度に複数の代替ルールを設定

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

次のように文字を1つずつ変更できます。

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

おすすめ記事