bash 命令用空字节替换文件中出现的所有内容

问题描述 投票:0回答:1

假设有一个名为

example_file
的文件,我们假设它是二进制文件。

我想用相应的空字节序列(

example_str
)替换其中出现的所有字符串
\0
,以便出现的每个字符都被空字节替换。 (明确指定
\0\0\0\0\0\0\0\0\0\0\0
不是一个选项,因为(1)它不方便,(2)我想对不同的字符串多次使用此命令)

是否有

bash
命令可以实现此目的?我希望它尽可能简洁明了。

bash file sh
1个回答
0
投票

使用 GNU sed:

$ printf 'foo\0foo\0' | hexdump -C
00000000  66 6f 6f 00 66 6f 6f 00                           |foo.foo.|
00000008
$ printf 'foo\0foo\0' | sed 's/foo/\x00\x00\x00/g' | hexdump -C
00000000  00 00 00 00 00 00 00 00                           |........|
00000008
© www.soinside.com 2019 - 2024. All rights reserved.