Relié à une autre question , afin de détecter de manière floue les fichiers binaires, existe-t-il un moyen de détecter ␀ octets sed
?
Relié à une autre question , afin de détecter de manière floue les fichiers binaires, existe-t-il un moyen de détecter ␀ octets sed
?
Réponses:
Exemple:
Prouvez que j'envoie un octet NUL, suivi d'une nouvelle ligne:
$ echo -e \\0 | hexdump -C
00000000 00 0a |..|
00000002
Maintenant, je change l'octet NUL en un !
point d' exclamation:
$ echo -e \\0 | sed 's/\x00/!/' | hexdump -C
00000000 21 0a |!.|
Donc, l'astuce consiste à utiliser \x00
comme octet NUL.
echo -ne \\0
éviter une nouvelle ligne.
hexdump -C
par uniname -bcepu
pour voir quel caractère il vide.
Oui, le modèle \x00
correspond à l'octet nul.
Exemple:
$ printf "\0\n\0\n" > file
$ sed -e 's/\x00/test/' -i file
$ cat file
test
test
$
\0
par l'octet zéro. Ce remplacement n'est pas nécessaire ("doit être pris en charge"), et en fait bash ne le prend pas directement en charge. Pour cela, vous devez utiliser echo -e
. Je remplace echo
par avec printf
dans ma réponse qui semble être plus compatible ...