이메일이 포함된 텍스트 파일이 있다고 가정해 보겠습니다.
abd3@dom
abd2@dom
sdklf2@lksd
sd@gm
grep의 작은 bash 스크립트가 필요합니다. 파일에 포함된 이메일을 찾아 일치하는 파일을 인쇄하세요.
그럴 것이라고 기대한다
**this email abd3@dom found in file8560.txt**
**this email abd2@dom found in file750.txt**
**this email sdklf2@lksd found in file970.txt**
**this email sd@gm found in file2690.txt**
답변1
이메일 주소를 검색하려는 파일 목록을 알고 있는 경우 다음을 수행할 수 있습니다.
grep -F -H -w -o -f email_list_file list of files to search | awk -F: '{print "*** this email " $2 " found in " $1 "**}'
'-w' 플래그는줄이다그러나 이것이 Ed가 자신의 의견에서 지적한 오탐지 중 일부를 제거하는 것은 아닙니다. 인쇄하려면 "-o" 플래그가 필요합니다.오직주소가 포함된 전체 줄이 아닌 이메일 주소입니다.
답변2
grep -Fxf list_of_emails.txt files...
find ... -type f -exec grep -Fxf list_of_emails.txt /dev/null {} +
...
명령을 find
파일 및 디렉터리 목록과 기타 find
조건자로 바꿉니다.
이는 단일 파일로 호출할 때 grep이 수행하지 않는 결과에 항상 파일 이름 접두사가 추가되도록 /dev/null
강제하기 위한 것입니다 . grep
이는 -H
이식성이 없는 GNU grep의 옵션을 에뮬레이트합니다.