grep 또는 egrep은 다음을 포함하는 mailq의 결과와 정확하게 일치할 수 없습니다.

grep 또는 egrep은 다음을 포함하는 mailq의 결과와 정확하게 일치할 수 없습니다.

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!

(10자리 영숫자 및 !)

정확히 10자의 합을 일치시키려면 !다음을 사용하십시오.

$ mailq | grep -E '^[[:alnum:]]{10}!'

답변2

alnum 문자를 ping하고 있는데 grep큰 소리가 들립니다. 이 패턴을 시도해 보십시오 ^[[:alnum:]]{10}!.

관련 정보