![Unix / Linuxですべてのファイルの純粋な(生)バイナリダンプを取得するには? [閉鎖]](https://linux33.com/image/62700/Unix%20%2F%20Linux%E3%81%A7%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E7%B4%94%E7%B2%8B%E3%81%AA%EF%BC%88%E7%94%9F%EF%BC%89%E3%83%90%E3%82%A4%E3%83%8A%E3%83%AA%E3%83%80%E3%83%B3%E3%83%97%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF%EF%BC%9F%20%5B%E9%96%89%E9%8E%96%5D.png)
Stack Exchangeコミュニティで同様の質問をたくさん読んでいますが、そのうち「クリーン」バイナリダンプを扱う質問はありません。私は与えられたファイルからきれいなバイナリダンプを取得しようとしました:xxd
と組み合わせを使用しました。sed
私が言う内容を説明します。 「xxd -p」の出力を見たことがあります。これは次のとおりです。
f4d37fd532171a4a3445be1bb03e7d6b75f3871ffee937aebc9eb2c9417f
f4e2fc8516e0a60a2c7e83c6a14c1a5e1b1e3f2ab9e12904cbd18aa2a4b9
f493d317c7a3ce71b7ab99fad4b64431d34866ced4d1f3e3f38136860009
fd08800c90491c8f7230d8b07936c4c0c29d2d12b138cdb2c544be9cc9fa
0e79d66faf375737966b67e7c7bf7efcf1703616a4643193d9aaafd63215
cf09a6e3e152bd01e9696b79f5faa5edd9f9b05628fdd9f77ee0dae1c5e8
dc2351d59693d84abac088cc4cd72916b5499830e4482e214bda0892f38c
60e9856fa111172a529222a7905e20b3c272a5b25c6fec9fbe386bb7f6cf
行番号もなく、対応するASCIIもなく、何もありません。ちょうど古いバイトのコレクションです。これが私が望むものです。ただバイナリが必要だということです。
2つのオプションがあります。まず、上記のように通常のxxd 16進ダンプを取得してから変換できます。それあるいは、bashに私が知らないツールやユーティリティがあるかもしれません。
これが私が望むものです。バイナリダンプは次のとおりです。
001101100011010100110110001100010011100001100001
011000010011000000111001011001000011010100110010
001101000011001101100001011000110110010100110000
001100100110010001100001001100000011010100110011
001110000110011000111001011000100110000100110010
011001010110010000110011001100010110001100001010
どのファイルからもクリーンな純粋なバイナリダンプを得る限り、上記のすべての方法は私にとってうまくいきます。だから私の質問は、改行、スペース、行番号、または何もせずにそれを取得する方法です。
答え1
xxd
そして以下を使ったcut
実用的な解決策tr
:
xxd -b -c1 file | cut -d" " -f2 | tr -d "\n"
答え2
Perlソリューション:
perl -ne 'use bytes; while ($a=substr $_,0,1,"") {printf "%08b\n", ord $a}'
\n
長い印刷物からすべての内容を削除します。