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 \x00comme octet NUL.
echo -ne \\0éviter une nouvelle ligne.
hexdump -Cpar uniname -bcepupour voir quel caractère il vide.
Oui, le modèle \x00correspond à l'octet nul.
Exemple:
$ printf "\0\n\0\n" > file
$ sed -e 's/\x00/test/' -i file
$ cat file
test
test
$
\0par 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 echopar avec printfdans ma réponse qui semble être plus compatible ...