주제 패턴을 기준으로 메일 삭제 [mail-command]

주제 패턴을 기준으로 메일 삭제 [mail-command]

제목이 정규식 패턴과 일치하는 메시지를 모두 삭제할 수 있나요?

예를 들어 메시지 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

아니면 완전한 스크립트를 만드세요.

관련 정보