2014-01-25 5 views

답변

0

에 formail 명령 (자주 생각, 프록와 함께 배포) 이메일 헤더를 추출하는 데 유용 할 수 있습니다 : 임시은 예를 들어, 구문 분석에 비해

formail -x Date < 0000-Some-commit.patch 

한 차이를 VonC의 대답에 게시 된 sed 또는 짧은 Perl 스크립트는 줄 바꿈 된 줄 바꿈 줄을 처리한다는 것입니다.

Subject: The line is so long that 
    is has been wrapped. 

Date, From 및 To 행에는 일반적이지 않지만 Subject 행에는 일반적입니다.

formail조차 다루지 않는 또 다른 구두점은 RFC 2047에 따라 인코딩 된 헤더 필드입니다. 이는 라인에 평이한 US-ASCII가 포함되어 있으면 필요합니다.

사용하는 언어에 사용할 수있는 이메일/MIME 구문 분석 라이브러리를 사용하는 것이 좋습니다. Python을 질문 제목으로 언급 했으므로 여기에 git format-patch으로 만든 파일을 stdin에서 읽고 헤더 일부를 인쇄하는 간단한 Python 예제가 있습니다.

0

구문 분석이 git apply 도움이되지 것이기 때문에, 참여해야한다 :

t/t4100/t-apply-*.expect 파일 중 하나에서 볼 수 있듯이
git apply --summary 

, 날짜 또는 이메일 대한 언급이 없다.


git format-patch 유닉스 사서함 형식을 생산하기 때문에, 당신은 C.
에서 도구 parse such a filemailutils 거짓말을 사용할 수 있습니다 또는 (쉽게)하는 perl script로 말했다되고.

while (($line = <F>)) { 

    # set variables in order 
    chomp($line); 
    if ($line =~ /^From /){ 
     $count++; 
    } 
    elsif ($line =~ /^Date:/){ 
     ($date_text,$date) = split(/:/,$line); 
    } 
    elsif ($line =~ /^From:/){ 
     ($from_text,$from) = split(/:/,$line); 
    } 
    elsif ($line =~ /^Subject:/){ 
     ($subject_text,$subject) = split(/:/,$line); 
    }