2014-01-17 3 views
0

남자. 한 가지를 자동화하려고하는데 현재 다음 문제를 만났습니다. 나는이를 구문 분석하고 쉼표로 구분 mailx 수신자의 목록으로 제공해야perl one-liner를 사용하는 전자 메일 목록을 구문 분석

John Doe <[email protected]>; Bill Gates <[email protected]>; Alfred Pennyworth <[email protected]>; (etc.) 

:

나는 같은 형식의 전자 메일의 목록을 가지고있다. 이 코드는 원하는 결과를 제공하지 않습니다.

perl -wne'while(/[\w\.\-][email protected][\w\.\-]+\w+/g){print "$&,"}' $MAIL_LIST 

그것은 마지막으로 구문 분석 된 전자 메일 후 쉼표를 추가합니다 (예. "[email protected],") 난 단지 그들 사이에 쉼표가 필요합니다있다.

상담하십시오.

감사합니다. 알렉스.

+0

입니다 입력 다중 라인을 일치? –

+0

@mpapec, 아니요, 한 줄입니다. 다중 회선 입력에 문제가 없지만 고객은 전자 메일 목록을 한 줄 (표준 Outlook 형식)으로 제공합니다. 솔루션은 이미 의견에 제공됩니다. – newbie

답변

2

정규식의 목록을 가입 첫 번째 제외한 각 이메일 주소 이전에 사용이 인쇄 ,,

perl -wne 'print join ",", /([\w\.\-][email protected][\w\.\-]+\w+)/g' $MAIL_LIST 
+0

고마워, 이봐,이 작품! – newbie

2

perl -wne'$c=0;while(/[\w\.\-][email protected][\w\.\-]+\w+/g){print "," if $c++;print "$&"}' 
+0

이것도 작동합니다. 감사! – newbie

관련 문제