我想要一个使用 grep 命令的正则表达式,它只打印出十六进制表示的字符串。
这是我的命令:
grep "0x[A-Fa-f0-9]{1,6}" test.txt
测试.txt:
0x2a
0xF
0x1111
0x0ZZZ
0x4dz5
预期输出:
0x2a
0xF
0x1111
输出:空
这个怎么做?谢谢
答案1
该{n,m}
语法是扩展正则表达式集的一部分,这意味着您需要在带有-E
标志的 grep 中启用它。要要求整行与十六进制表示匹配,请添加标志-x
(或使用^
和$
锚点):
grep -Ex '0x[A-Fa-f0-9]{1,6}'
或者
grep -E '^0x[A-Fa-f0-9]{1,6}$'
我还将周围的引号从双引号更改为单引号,以防止字符意外扩展$
。
更多关于 Stack Exchange 的正则表达式阅读: