我对 Perl 完全陌生,我认为这是解决我的简单任务的最佳语言。我需要将二进制文件转换为可读的文件,并且需要找到像 \x00\x39
这样的字符串并将其替换为 \x09
(tab) 或类似的东西。
我从 bash 开始,效果很好:
perl -pi -e 's/abc/123/g' test.txt
但是,当我开始输入 ascii 代码时,我迷路了:
perl -pi -e 's/0x49/*/g' test.txt
perl -pi -e 's/{char(49)}/*/g' test.txt
这个命令看起来像 perl 脚本中的一行?我有大约几百个这样的查找/替换操作和一个 500MB 的文本文件。有什么需要我知道的警告吗?
非常感谢您的帮助!
加里
最佳答案
使用 \x##
表示法:
perl -pi~ -e 's/\x00/*/g' test.txt
要将每个“特殊”字符替换为其括号中的代码,请使用 /e
选项:
perl -pi~ -e 's/([\x0-\x09\x11-\x1f])/"[" . ord($1) . "]"/eg' test.txt
关于Perl 初学者 : How can I find/replace ascii characters in a file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18286743/