ファイルからDKIMレコードを抽出する正規表現

ファイルからDKIMレコードを抽出する正規表現

postfixサーバー配布スクリプトを作成し、それに応じてDNSレコードを生成しようとしています。 SPFとDKIM。最初の2つは非常に簡単ですが、opendkimで生成されたファイルからレコードを抽出するのが困難です。

これはopendkimが私に与えたファイルです:

mail._domainkey IN  TXT ( "v=DKIM1; h=sha256; k=rsa; t=y; "
      "p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK9yGy7orNIceonobdyTxr0USLo9XlWoo2/hg5MU5Ix+7bKFN0exJIUEeNLDAOYXWZe/0vQZan3+vnry9v3pVxqwpNp/92/xbp0pILJBzc1i5YXFe60XAlBBWq+Y9UAY2uXXsiFY4IUmhGZdMCubuHguWy/R2HDmCwrtN5vn0XfQIDAQAB" )  ; ----- DKIM key mail for localhost

DNSレコードに適した出力が必要です。

"v=DKIM1; h=sha256; k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDK9yGy7orNIceonobdyTxr0USLo9XlWoo2/hg5MU5Ix+7bKFN0exJIUEeNLDAOYXWZe/0vQZan3+vnry9v3pVxqwpNp/92/xbp0pILJBzc1i5YXFe60XAlBBWq+Y9UAY2uXXsiFY4IUmhGZdMCubuHguWy/R2HDmCwrtN5vn0XfQIDAQAB"

私はいくつか試しましたが、ここで見つけたコマンドを使用して角かっこの間にあるものを抽出することはできません。grep:角かっこ間の項目を一致させるための正規表現

回線返還問題があるようですね。それとも私が知らない部分があるようです。

読んでくれてありがとう。英語が苦手で申し訳ありません!良い一日になろう

ベストアンサー1

GNUを使用すると、各レコードをキーと値のペアに分割し、フィールドを繰り返して文字列に追加できますawkFPATENDセクションで始まりと終わりで文字列を印刷します"

awk -v FPAT='.=[^;"]+(; )?' '{
    for (i=1;i<=NF;i++) s=s $i
}
END {
    print "\"" s "\""
}' file

おすすめ記事