有没有办法在 sed 中检测空字节(␀,NUL,\0)?

有没有办法在 sed 中检测空字节(␀,NUL,\0)?

相关另一个问题,为了模糊检测二进制文件,有没有办法检测 中的 ␀ 字节sed

答案1

例子:

证明我正在发送一个 NUL 字节,后跟一个换行符:

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

现在我将 NUL 字节更改为!感叹号:

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

所以技巧是使用\x00NUL 字节。

答案2

是的,该模式\x00与空字节匹配。

例子:

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

相关内容