Есть ли способ обнаружить нулевые байты (␀, NUL, \0) в sed?

Есть ли способ обнаружить нулевые байты (␀, NUL, \0) в sed?

Относится кДругой вопрос, чтобы нечетко обнаружить двоичные файлы, есть ли способ обнаружить ␀ байтов в sed?

решение1

Пример:

Докажите, что я отправляю нулевой байт, за которым следует новая строка:

$ echo -e \\0 | hexdump -C
00000000  00 0a                                             |..|
00000002

Теперь я меняю байт NUL на !восклицательный знак:

$ echo -e \\0 | sed 's/\x00/!/' | hexdump -C
00000000  21 0a                                             |!.|

Итак, трюк заключается \x00в использовании NUL-байта.

решение2

Да, шаблон \x00соответствует нулевому байту.

Пример:

$ printf "\0\n\0\n" > file
$ sed -e 's/\x00/test/' -i file
$ cat file
test
test
$  

Связанный контент