Можно установить энергию как редактор командной строки и затем поразить ESC и переход вокруг стиля энергии (вперед, назад, конец, $, 0, и т.д.)
Можно также использовать tr
команда. Например:
Удалить управляющий символ:
tr -d '\033' < file
Заменять управляющий символ другим:
tr '\033' 'x' < file
Если Вы не уверены, каково значение управляющего символа, выполните восьмеричный дамп, и это распечатает его:
$ cat file
hello
^[
world
$ od -b file
0000000 150 145 154 154 157 012 033 012 167 157 162 154 144 012
0000016
Так значение управляющего символа ^[
\033
.
Эта острота жемчуга сделает, задание - остерегается, это изменит файл:
perl -i -pe 's#\x{0003}#some_string#g' /path/to/log/file
Если Вы хотите заменить много символов кодами символов между указанным диапазоном:
echo {A..Z} | perl -i -pe 's#[\x{0040}-\x{0047}]#P#g'
P P P P P P P H I J K L M N O P Q R S T U V W X Y Z
(эхо {A.. Z} производит строку буквенных символов в ударе),
-i
использовать жемчуг в качестве фильтра.
– Gilles 'SO- stop being evil'
15.01.2011, 00:31
Это заменит все непечатаемые символы a #
sed 's/[^[:print:]]/#/g' logfile
Я не уверен, понимаю ли я то, что Вы хотите, но если это должно заменить случаи последовательных шестнадцатеричных байтов 0x00 0x03, это должно работать:
$ echo '0 61 20 00 03 0A' | xxd -r | sed 's/\x00\x03/test/g'
a test