Perl oneline命令出错

时间:2011-11-20 05:56:28

标签: regex perl

perl -pi -e 's|\x20|; s|\x90|' log.bin

给我这个错误

Backslash found where operator expected at -e line 1, near "s|\x20|; s|\"
syntax error at -e line 1, near "s|\x20|; s|\"
Execution of -e aborted due to compilation errors.

我做错了什么?该行旨在用0x20替换所有字节为0x90 ...

3 个答案:

答案 0 :(得分:4)

您有两个半语句,而不是一个完整语句。你可能正在寻找

perl -pi -e 's|\x20|\x90|g' log.bin

答案 1 :(得分:1)

你在该命令中有两个不完整的替换,你说替换\x20而没有指定应该替换它的内容,然后单独说再次替换\x90省略替换。这是语法错误。

正确的语法是

s|\x20|\x90|g ;

答案 2 :(得分:1)

您格式化了s命令错误。试试这个:

s|\x20|\x90|g;

g表示全局,并且命令

需要格式化