Powiązane z innym pytaniem , aby w niewyraźny sposób wykrywać pliki binarne, czy istnieje sposób na wykrycie ␀ bajtów sed
?
Powiązane z innym pytaniem , aby w niewyraźny sposób wykrywać pliki binarne, czy istnieje sposób na wykrycie ␀ bajtów sed
?
Odpowiedzi:
Przykład:
Udowodnij, że wysyłam bajt NUL, a następnie nowy wiersz:
$ echo -e \\0 | hexdump -C
00000000 00 0a |..|
00000002
Teraz zmieniam bajt NUL na !
wykrzyknik:
$ echo -e \\0 | sed 's/\x00/!/' | hexdump -C
00000000 21 0a |!.|
Więc sztuczka jest używana \x00
jako bajt NUL.
echo -ne \\0
uniknąć nowej linii.
hexdump -C
się uniname -bcepu
, aby zobaczyć, który to znak wysypisk.
Tak, wzór \x00
pasuje do bajtu zerowego.
Przykład:
$ printf "\0\n\0\n" > file
$ sed -e 's/\x00/test/' -i file
$ cat file
test
test
$
\0
go bajtem zerowym. Ta zamiana nie jest konieczna („będzie obsługiwana”), a bash nie obsługuje jej bezpośrednio. Do tego musisz użyć echo -e
. Zamieniam na echo
z printf
w odpowiedzi, która wydaje się bardziej zgodna ...