次の内容のファイルがあります(UTF-8形式のテキストファイル)。
e04ba1af81d887979ddcee1dc23f2531
43f85926fdb6a668386ee354f8b836a1
b53614f5139c052ec08ea1ecd2532daf
e9b3914d7b1e1bf8e6feab621330245b
bbcad02116316176385fbfb294ee77b4
46390
ファイルに数字(10進数)が含まれていることを確認する必要があります。b536
16進数で3行目の先頭と同じです。
ファイルとパターンをバイナリ表現に変換して検索するにはどうすればよいですかgrep
?awk
つまり、ベースが既知の場合、検索ベースを独立して作成します。
出力例:
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
(どちらもバイナリに変換するのが役に立つとは思わない)