如何 grep 十六进制内容并指定小数模式?

如何 grep 十六进制内容并指定小数模式?

我有一个包含以下内容的文件(作为 UTF-8 格式的文本文件)

e04ba1af81d887979ddcee1dc23f2531
43f85926fdb6a668386ee354f8b836a1
b53614f5139c052ec08ea1ecd2532daf
e9b3914d7b1e1bf8e6feab621330245b
bbcad02116316176385fbfb294ee77b4

我需要确保该文件包含一个数字46390(十进制)。它b536在十六进制中等于第三行的开头。

如何使用grepawk使其将文件和模式转换为二进制表示形式,然后进行搜索?换句话说,考虑到碱基是已知的,使搜索碱基独立。

示例输出:

1)

$ cat file.txt | grep 46390

10110101001101101010011110101000100111001110000000101001011101100000010001110101000011110110011010010010100110010110110101111(这是b53614f5139c052ec08ea1ecd2532daf(十六进制)

2) 一个文件包含一个字符串3CA547A(二进制0011110010100101010001111010)。我得到了某个序列的十进制表示形式。文件可能包含此序列,并且可能未按 8 位对齐。假设该序列等于十进制 15(二进制1111

命令:

$ cat file.text | grep 15

结果将包含 2 次出现:

0011110010100101010001111010

答案1

printf简单地使用来进行转换怎么样?

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

(我认为将两者转换为二进制没有帮助)

相关内容