Я пытаюсь получить строки задержанных писем с помощью grep или egrep, которые содержат восклицательный знак / bang
root@server:~# mailq
-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
0528561D88 878 Wed Feb 1 21:46:12 root@example.com
root@example2.com
0D14161E2B 657 Wed Feb x xx:47:01 root@example.com
root@example2.com
0798C61E0F 657 Wed Feb x xx:45:02 root@example.com
root@example2.com
14AF361E2F! 657 Wed Feb x xx:48:01 root@example.com
root@example2.com
next
root@server:~# mailq |grep "[[:alnum:]]\!"
3658861E66! 657 Wed Feb x xx:48:01 root@example.com
root@server:~# mailq |grep "^[[:alnum:]]\!"
root@server:~#
Первый grep работает дает ожидаемый результат, но второй не работает вообще
Любые мысли?
Вы grep
ping для одного символа alnum, за которым следует удар. Попробуйте использовать шаблон ^ [[: alnum: ]] {10}!
вместо этого.
Второе регулярное выражение, ^ [[: alnum:]]!
соответствует одному буквенно-цифровому символу в начало строки, за которым следует восклицательный знак.
Например,
3!
A!
c!
Но не
14AF361E2F!
(десять буквенно-цифровых символов и !
)
Для соответствия точно десяти символам и !
, используйте
$ mailq | grep -E '^[[:alnum:]]{10}!'