Ste*_*pan 3 sed text-processing
我想通过转换windows-1252
为windows-1251
我想做的映射来修复文件中的损坏字符,如下所示:
sed 's/[ÉÖÓÊÅÍÃØÙÇÕÚÔÛÂÀÏÐÎËÄÆÝß×ÑÌÈÒÜÁÞ¸éöóêåíãøùçõúôûâàïðîëäæýÿ÷ñìèòüáþ]/[?????????????????????????????????????????????????????????????????]/g' input.py > input.py
我可以一一替换字符,例如:
sed 's/î/?/g' input.py > output1.py
sed 's/è/?/g' output1.py > input.py
Run Code Online (Sandbox Code Playgroud)
但是在一次运行中修复所有字符的字符映射语法是什么?
这tr
就是为了。假设这些确实是您想要更改的字符并且这不是编码问题,您需要的是:
tr '¨ÉÖÓÊÅÍÃØÙÇÕÚÔÛÂÀÏÐÎËÄÆÝß×ÑÌÈÒÜÁÞ¸éöóêåíãøùçõúôûâàïðîëäæýÿ÷ñìèòüáþ' \
'??????????????????????????????????????????????????????????????????' < input.py > output.py
Run Code Online (Sandbox Code Playgroud)
但是,我怀疑您想要做的是更改文件的编码,而不是字符。如果没有示例文件,我无法对此进行测试,但也许是这样的:
iconv -f windows-1252 -t windows-1251 input.py > output.py
Run Code Online (Sandbox Code Playgroud)