我有一个从 0000 到 FFFF 的十六进制数字列表。
我试图解析列表以仅包含带有 2 个数字 0-9 和 2 个字母 AF 的文本,但没有成功。我一直尝试egrep -v [0-9]{3}
将结果输出到一个文件中,以为可以找到没有 3 个数字的任何条目,然后获取该文件并执行egrep -v [0-9]{4}
上一个命令的输出,但这不起作用,因为我仍然有带有 3 和 4 个数字的条目。我原本打算运行egrep -v [A-F]{3}
并egrep -v [A-F]{4}
过滤其余内容,但仍然不起作用。
任何建议将不胜感激。
答案1
创建如下文件
~$ cat Patterns.txt
[0-9][0-9][A-F][A-F]
[0-9][A-F][0-9][A-F]
[0-9][A-F][A-F][0-9]
[A-F][A-F][0-9][0-9]
[A-F][0-9][A-F][0-9]
[A-F][0-9][0-9][A-F]
~$
这是示例输入
~$ cat HEX.txt
FFFF
08FF
F0AA
FF08
0F0F
F0F0
~$
这是示例输出
~$ grep -f Patterns.txt HEX.txt
08FF
FF08
0F0F
F0F0
解释:
你的情况只有 6 种可能的组合
Number, Number, Letter, Letter
Number, Letter, Number, Letter
Number, Letter, Letter, Number
Letter, Letter, Number, Number
Letter, Number, Letter, Number
Letter, Number, Letter, Letter
我们将所有这些组合存储起来,Patterns.txt
并要求 grep 使用这些模式从中查找值HEX.txt