com xxd
, você pode usar o -b
flag
echo 'hello world' | xxd -b
qual produzirá
0000000: 01101000 01100101 01101100 01101100 01101111 00100000 hello
0000006: 01110111 01101111 01110010 01101100 01100100 00001010 world.
você pode redirecionar isso para um arquivo onde possa editá-lo
echo 'hello world' | xxd -b > dumped_bits.txt
e depois, deixando o coumns no lugar você pode converter de volta com este script (albiet hacky)
#!/bin/bash
# name this file something like 'bits_to_binary.sh'
# strip anything that's not a bit string like '0000000:' or 'world'
bits='sed -ze 's/\w*[^ 01]\w*//g' -e 's/ //g' -e 's/\n//' $1'
# and convert the bit representation to binary
printf "obase=16;ibase=2;${bits}\n" | bc | xxd -r -p
and with those steps in combination, you can
echo 'hello world' | xxd -b > dumped_bits.txt # edit dumped_bits.txt ./bits_to_binary.sh dumped_bits.txt # hooray! the binary output from the edited bits!