チャットやSNSなどで「分かる人には分かるよね」的なメッセージを送りたいときに
難読化することはないですか??(ないですよねきっと)
という風に ascii 文字列をバイナリ化してみます
xxd -b を使うのが楽です
# シンプルな実装
alias a2b='xxd -b | cut -c11-63 | tr "\n" " "
# バイナリ文字列の先頭のゼロを削り、さらに末尾に改行を付けて出力する例
alias a2b='xxd -b | cut -c11-63 | sed "s/\b00*//g" | tr "\n" " " | sed "s/$/\n/"'
bc でバイナリ->hex変換すると楽です
alias b2a="tr ' ' '\n' | sed '1iobase=16;ibase=2' | bc | sed 's/^.$/0&/' | tr -d '\n' | xxd -r -ps"
a2b は「バイナリ文字列の先頭のゼロを削り、さらに末尾に改行を付けて出力する例」を使ってます
$ echo maji darui | a2b
1101101 1100001 1101010 1101001 100000 1100100 1100001 1110010 1110101 1101001 1010
$ echo 1101101 1100001 1101010 1101001 100000 1100100 1100001 1110010 1110101 1101001 1010 | b2a
maji darui
# 記号や制御文字も大丈夫
$ echo -e "ore\tore _>[sagi]<_\nzettai *DAME*" | a2b | b2a
ore ore _>[sagi]<_
zettai *DAME*