
내 IMAP 폴더에서 특정 텍스트(즉, 특정 이메일 주소로 전송된 이메일)가 포함된 모든 이메일을 찾고 싶습니다. 나는 이미 다음과 같이 grep을 사용하여 그렇게 할 수 있다는 것을 알았습니다.
grep -rnw '~/users/example' -e "[email protected]"
그러면 일치하는 텍스트나 파일 이름( 사용 -l
)이 반환됩니다. 하지만 내 작업에 정말로 필요한 것은 발견된 이메일 파일의 "제목"을 아는 것입니다.
/home/example/users/example/.Archives.2013/cur/1364614080.4080.example.com:2,Sa
/home/example/users/example/.Archives.2013/cur/1385591317.91317.example.com:2,RSa
/home/example/users/example/.Archives.2013/cur/1358235054.35054.example.com:2,S
/home/example/users/example/.Archives.2013/cur/1358445545.45545.example.com:2,S
/home/example/users/example/.Archives.2013/cur/1453119248.M330746P8611.example.com,S=6761,W=6915:2,S
따라서 어떻게든 위의 grep을 기반으로 파일을 찾아야 하지만 나열된 결과는 동일한 파일의 다른 부분이어야 합니다(아마도 정규 표현식을 사용했을까요?).
이 문제를 어떻게 해결할 수 있나요?
답변1
사용 formail
(와 함께 제공 procmail
):
find ~/users/example -type f -exec sh -c '
for email do
formail -x to -x cc < "$email" |
grep -qF [email protected] &&
formail -cx subject < "$email"
done' sh {} +
즉, 각 이메일 파일에 대해
To
및Cc
헤더를 추출합니다 .[email protected]
거기에서 검색해 보세요- 발견되면
Subject
헤더를 추출하여 한 줄에 인쇄합니다( 를 사용하여-c
).
답변2
파일의 "제목", 경로 또는 이름은 무엇입니까? 일치하는 파일 이름을 나열하려면 --files-with-matches 옵션 또는 -l을 사용하십시오. 정규식 대신 고정 문자열만 검색하는 경우 -F를 사용하여 처리 속도를 높입니다.
grep -F -r -l [email protected] ~/users/example
파일의 다른 내용과 일치하는지 확인하고 발견된 파일 목록을 grep합니다(fgrep은 grep -F와 동일합니다).
fgrep -rl [email protected] ~/users/example | xargs grep '^Subject:'
힌트: 많은 명령은 빼기 문자가 없는 첫 번째 인수에서 옵션 구문 분석을 중지합니다. 따라서 모든 옵션을 먼저 호출해야 합니다.
답변3
와 함께 mutt
:
muff -f ~/users/example/.Archives.2013
(maildir 폴더라고 가정). 그리고 안에 (소문자 ) mutt
를 입력하세요 .lL
프롬프트 에서 Limit to messages matching:
다음을 입력합니다.
~C [email protected]
(엄밀히 말하면 정규식이므로 문자 그대로 일치해야 합니다 ~C 'my@example\.com'
. .
)
또는 mutt
다음과 같이 시작하세요.
mutt -f ~/users/example/.Archives.2013 -e 'push "l ~C [email protected]"'
~C
To:
및 헤더 에서 검색합니다 Cc:
.
확인하다매뉴얼검색 구문의 경우.
한 번에 두 개 이상의 사서함을 검색하기 위해 사용할 수 있는 메일 인덱서가 여러 개 있습니다(내부 mutt
또는 외부). 보다https://dev.mutt.org/trac/wiki/UseCases/SearchingMail예를 들어.