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 に答える