Ошибка в команде Perl oneline - PullRequest
       0

Ошибка в команде Perl oneline

0 голосов
/ 20 ноября 2011
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 ]

4 голосов
/ 20 ноября 2011

У вас есть 2 половины заявления вместо одного полного. Вы, наверное, ищете

perl -pi -e 's|\x20|\x90|g' log.bin
1 голос
/ 20 ноября 2011

Вы неправильно отформатировали команду s.Попробуйте это:

s|\x20|\x90|g;

g означает глобальный и форматирование необходимо для команды

1 голос
/ 20 ноября 2011

у вас есть две неполные замены в этой команде, вы говорите «заменить» \x20, не указывая, на что его следует заменить, затем отдельно говорите «заменить» \x90, снова пропуская замену.Это синтаксическая ошибка.

правильный синтаксис:

s|\x20|\x90|g ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...