我正在尝试使用 grep 或 egrep 获取包含感叹号/爆炸的保留电子邮件行
root@server:~# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
0528561D88 878 Wed Feb 1 21:46:12 [email protected]
[email protected]
0D14161E2B 657 Wed Feb x xx:47:01 [email protected]
[email protected]
0798C61E0F 657 Wed Feb x xx:45:02 [email protected]
[email protected]
14AF361E2F! 657 Wed Feb x xx:48:01 [email protected]
[email protected]
下一个
root@server:~# mailq |grep "[[:alnum:]]\!"
3658861E66! 657 Wed Feb x xx:48:01 [email protected]
root@server:~# mailq |grep "^[[:alnum:]]\!"
root@server:~#
第一个 grep 工作提供了预期的结果,但第二个根本不起作用
有什么想法吗?
答案1
第二个正则表达式^[[:alnum:]]!
匹配行开头的单个字母数字字符,后跟感叹号。
例如
3!
A!
c!
但不是
14AF361E2F!
(十个字母数字字符,和!
)
要恰好匹配十个字符 和!
,请使用
$ mailq | grep -E '^[[:alnum:]]{10}!'
答案2
您正在grep
ping 一个 alnum 字符,然后听到一声巨响。尝试一下该模式^[[:alnum:]]{10}!
。