Czy do wyświetlania danych binarnych jako zer i jedynek można używać hexdump (hd) lub octal dump (od)?

3

Czy istnieje sposób wyświetlania zawartości binarnej pliku jako zer i jedynek?

Zamiast czegoś takiego:

 DE AD BE EF

Możemy otrzymać dane wyjściowe w następujący sposób:

11011110 10101101 10111110 11101111

Czy można to zrobić za pomocą podstawowych programów / przełączników wiersza poleceń?

snapfractalpop
źródło

Odpowiedzi:

5

Dlaczego nie użyć xxd? Używaj go w ten sposób:xxd -b file

Na przykład wykonanie a xxd -b google-chrome-stable_current_i386.deb | headdaje:

0000000: 00100001 00111100 01100001 01110010 01100011 01101000  !<arch
0000006: 00111110 00001010 01100100 01100101 01100010 01101001  >.debi
000000c: 01100001 01101110 00101101 01100010 01101001 01101110  an-bin
0000012: 01100001 01110010 01111001 00100000 00100000 00100000  ary   
0000018: 00110001 00110100 00110000 00111001 00110111 00111001  140979
000001e: 00110001 00111000 00110001 00110101 00100000 00100000  1815  
0000024: 00110000 00100000 00100000 00100000 00100000 00100000  0     
000002a: 00110000 00100000 00100000 00100000 00100000 00100000  0     
0000030: 00110001 00110000 00110000 00110110 00110100 00110100  100644
0000036: 00100000 00100000 00110100 00100000 00100000 00100000    4   

Jeśli chcesz, możesz użyć cutdo odcięcia kolumny znajdującej się najbardziej na lewo i kolumny na prawo, wykonując xxd -b google-chrome-stable_current_i386.deb | head | cut -b10-62:

00100001 00111100 01100001 01110010 01100011 01101000 
00111110 00001010 01100100 01100101 01100010 01101001 
01100001 01101110 00101101 01100010 01101001 01101110 
01100001 01110010 01111001 00100000 00100000 00100000 
00110001 00110100 00110000 00111001 00110111 00111001 
00110001 00111000 00110001 00110101 00100000 00100000 
00110000 00100000 00100000 00100000 00100000 00100000 
00110000 00100000 00100000 00100000 00100000 00100000 
00110001 00110000 00110000 00110110 00110100 00110100 
James
źródło
1

W przypadku, gdy mamy zrzut heksadecymalny i na podstawie podanego przykładu możliwe rozwiązanie wygląda następująco:

echo DE AD BE EF | xxd -r -p | xxd -b

gdzie

echo DE AD BE EF wprowadź przykładowe dane (białe znaki można zachować)

xxd -r -p konwertuje zrzut heksowy na surowe bajty

xxd -b konwertuje nieprzetworzone bajty na zrzut binarny

Wynik:

00000000: 11011110 10101101 10111110 11101111 ....

Andrey Bochkov
źródło