Gibt es im Zusammenhang mit einer anderen Frage , um Binärdateien unscharf zu erkennen, eine Möglichkeit, ␀ Bytes in zu erkennen sed
?
Gibt es im Zusammenhang mit einer anderen Frage , um Binärdateien unscharf zu erkennen, eine Möglichkeit, ␀ Bytes in zu erkennen sed
?
Antworten:
Beispiel:
Beweisen Sie, dass ich ein NUL-Byte sende, gefolgt von einer neuen Zeile:
$ echo -e \\0 | hexdump -C
00000000 00 0a |..|
00000002
Jetzt ändere ich das NUL-Byte in ein !
Ausrufezeichen:
$ echo -e \\0 | sed 's/\x00/!/' | hexdump -C
00000000 21 0a |!.|
Also wird der Trick \x00
als NUL-Byte verwendet.
echo -ne \\0
einen Zeilenumbruch vermeiden.
hexdump -C
durch, um uniname -bcepu
zu sehen, welches Zeichen ausgegeben wird.
Ja, das Muster \x00
stimmt mit dem Null-Byte überein.
Beispiel:
$ printf "\0\n\0\n" > file
$ sed -e 's/\x00/test/' -i file
$ cat file
test
test
$
\0
durch das Null-Byte ersetzt. Dieser Ersatz ist nicht erforderlich ("wird unterstützt") und wird von bash nicht direkt unterstützt. Dafür müssen Sie verwenden echo -e
. Ich ersetze echo
mit printf
in meiner Antwort, die kompatibler zu sein scheint ...