Perl初学者:如何在文件中查找/替换ascii字符?

Gar*_*chi 3 perl ascii replace find

我是Perl的新手,我认为这将是解决我简单任务的最佳语言.我需要一个二进制文件转换成可读的格式,并需要查找并替换字符串像\x00\x39\x09(标签),或者类似的东西.

从bash开始,我从以下开始,效果很好:

perl -pi -e 's/abc/123/g' test.txt
Run Code Online (Sandbox Code Playgroud)

但是,当我开始输入ascii代码时,我迷路了:

perl -pi -e 's/0x49/*/g' test.txt
perl -pi -e 's/{char(49)}/*/g' test.txt
Run Code Online (Sandbox Code Playgroud)

这个命令在perl脚本中的行怎么样?我有大约几百个这样的查找/替换操作和一个500MB的文本文件.有什么警告我需要知道吗?

非常感谢您的帮助!

加里

cho*_*oba 7

使用\x##符号:

perl -pi~ -e 's/\x00/*/g' test.txt
Run Code Online (Sandbox Code Playgroud)

要用括号中的代码替换每个"特殊"字符,请使用以下/e选项:

perl -pi~ -e 's/([\x0-\x09\x11-\x1f])/"[" . ord($1) . "]"/eg' test.txt
Run Code Online (Sandbox Code Playgroud)