gitパッチファイルから/からの電子メール送信と日付を取得するコマンドはありますか、それともパッチファイルの解析から読み取る必要がありますか?
2 に答える
0
formail コマンド (多くの場合、procmail と一緒に配布されていると思います) は、電子メール ヘッダーの抽出に役立ちます。
formail -x Date < 0000-Some-commit.patch
sed や VonC の回答に掲載されている短い Perl スクリプトなどを使用したアドホック解析との違いの 1 つは、行でラップされたヘッダー行を処理することです。
Subject: The line is so long that
is has been wrapped.
これは、Date、From、および To の行では珍しいことですが、件名の行では一般的です。
formail でさえ対処しないもう 1 つのまれなケースは、RFC 2047に従ってエンコードされたヘッダー フィールドです。これは、行にプレーンな US-ASCII 以外が含まれている場合に必要です。
使用する言語で利用できる電子メール/MIME 解析ライブラリを使用することをお勧めします。git format-patch
質問のタイトルで Python に言及しているため、標準入力から作成されたファイルを読み取り、そのヘッダーの一部を出力するための短い Python の例を次に示します。
import email.header
import email.parser
import sys
def decode_header(s):
return ' '.join(
text.decode(charset) if charset else text
for text, charset in email.header.decode_header(s))
message = email.parser.Parser().parse(sys.stdin)
print decode_header(message['From'])
print decode_header(message['Date'])
print decode_header(message['Subject'])
于 2014-01-25T21:51:12.897 に答える