Existe uma maneira de detectar bytes nulos (␀, NUL, \0) no sed?

Existe uma maneira de detectar bytes nulos (␀, NUL, \0) no sed?

Relacionado aoutra pergunta, para detectar arquivos binários de maneira imprecisa, existe uma maneira de detectar ␀ bytes em sed?

Responder1

Exemplo:

Prove que estou enviando um byte NUL, seguido por uma nova linha:

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

Agora mudo o byte NUL para um !ponto de exclamação:

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

Portanto, o truque é usar \x00como byte NUL.

Responder2

Sim, o padrão \x00corresponde ao byte nulo.

Exemplo:

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

informação relacionada