제목이 정규식 패턴과 일치하는 메시지를 모두 삭제할 수 있나요?
예를 들어 메시지 1을 삭제하려면 다음을 수행합니다.
d 1
하지만 제목이 로 시작하는 모든 메시지를 삭제하려면 [SPAM]
다음을 수행할 수 없습니다.
d -s "^\[SPAM\].*$"
답변1
누구든지 같은 문제가 있는 경우를 대비해 이 질문에 답하고 있습니다.
패턴 매칭을 이용해 일괄 삭제를 할 수 있는 방법은 없는 것 같습니다 mail
. 또 다른 방법은 mutt
다음과 같은 기능을 가진 메일 클라이언트를 사용하는 것입니다 .
D \[SPAM\]
대안을 제안해주신 @thrig와 @dirkt에게 감사드립니다.
답변2
"man mail"에 따르면 "d"와 같은 삭제 명령이 처리할 메시지를 지정하는 다양한 모드가 있습니다. 쿼리 제목 줄에 다음을 사용할 수 있습니다.
(subject string)
All messages that contain string in the Subject: field.
메일 명령에서 다음을 작성할 수 있습니다.
& d (subject Happy Birthday)
제목에 "생일 축하합니다"라는 문자열이 포함된 모든 메시지가 삭제됩니다. 다른 필드 및 다른 날짜 관련 기준에 대한 패턴도 있습니다("Heirloom Mail 버전 12.4 7/29/08"으로 테스트됨).
답변3
나는 성공하지 못한 채 똑같은 것을 찾고 있었기 때문에 이것을 시도하기로 결정했습니다.
echo 'f 1-$' | mail -N | grep 'SPAM' | awk '{print $1}'
또는 print $0
전체 헤더를 보고 "SPAM" 문자열이 포함된 이메일 번호를 표시하세요.
따라서 가능하다고 생각되면 모두 삭제할 수 있습니다.
echo 'd #1 #2 #3 ...' | mail -N
아니면 완전한 스크립트를 만드세요.