16進コンテンツを特定し、10進モードを指定するには?

16進コンテンツを特定し、10進モードを指定するには?

次の内容のファイルがあります(UTF-8形式のテキストファイル)。

e04ba1af81d887979ddcee1dc23f2531
43f85926fdb6a668386ee354f8b836a1
b53614f5139c052ec08ea1ecd2532daf
e9b3914d7b1e1bf8e6feab621330245b
bbcad02116316176385fbfb294ee77b4

46390ファイルに数字(10進数)が含まれていることを確認する必要があります。b53616進数で3行目の先頭と同じです。

ファイルとパターンをバイナリ表現に変換して検索するにはどうすればよいですかgrepawkつまり、ベースが既知の場合、検索ベースを独立して作成します。

出力例:

1)

$ cat file.txt | grep 46390

10110101001101101010011110101000100111001110000000101001011111011000001000111010100001111011001101001001010011101b53614f5139c052ec08ea1ecd2532daf(16進数)

2)ファイルには文字列3CA547A(バイナリ0011110010100101010001111010)が含まれています。特定のシーケンスの10進数表現を取得しています。ファイルにこのシーケンスが含まれている可能性があり、8ビットでソートされない可能性があります。シーケンスが10進数15(2進数1111)に等しいとします。

注文する:

$ cat file.text | grep 15

結果には2回の発生が含まれます。

0011110010100101010001111010

ベストアンサー1

printf簡単に使うのはどうですか?

printf '^%x\n' 46390 | grep -f- file

(どちらもバイナリに変換するのが役に立つとは思わない)

おすすめ記事