1

有人可以告诉我为什么 sed 不会删除我的 NULL 吗?

这是在 OS X 上

$ printf '123\x00456' | sed 's/\x00/Z/g' | hexdump 
0000000 31 32 33 00 34 35 36 0a                        

这也不起作用:

$ printf '123'$(echo "\000")'456' | sed 's/'$(echo "\000")'/Z/g' | hexdump 
0000000 31 32 33 00 34 35 36 0a
4

1 回答 1

1

对于删除单个字符或将单个字符转换为单个其他字符(不包括多字节字符),tr可以这样做,并且与 sed 不同,它支持从一开始就在所有版本的 unix 中的所有字符,包括 NUL。

对于翻译:

tr '\0' Z

对于删除:

tr -d '\0'
于 2012-07-26T23:54:46.433 回答