カラフルな出力を読みやすいHTMLメールに変換

カラフルな出力を読みやすいHTMLメールに変換

次のDISCUSコマンド出力を取得するには:

カラーディスク出力スクリーンショット

HTMLメールに優しいコンテンツに変換しますか?私は次のようなbashスクリプトを書いた。

#!/bin/sh
discus > /tmp/discus.log
touch /tmp/diskchart.log
    echo "To: [email protected]" > /tmp/diskchart.log
    echo "Subject: Weekly Disk Report" >> /tmp/diskchart.log
    echo "MIME-Version: 1.0" >> /tmp/diskchart.log
    echo "Content-Type: text/html; charset=\"us-ascii\"" >> /tmp/diskchart.log
    echo "Content-Disposition: inline" >> /tmp/diskchart.log
    echo "<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">" >> /tmp/diskchart.log
    echo "<html>" >> /tmp/diskchart.log
    echo "<div>" >> /tmp/diskchart.log
    cat /tmp/discus.log | grep / | grep -v run | /usr/bin/awk '{print $1}{print $9}' >> /tmp/diskchart.log
    echo "</div>" >> /tmp/diskchart.log
    echo "</html>" >> /tmp/diskchart.log
    mail -s "SAT Weekly Disk Report" [email protected] < /tmp/diskchart.log
#rm  /tmp/discus.log /tmp/diskchart.log

ただし、これにより次の出力が生成されます。

エスケープ文字を含む出力スクリーンショット

実際のメッセージに表示されるエスケープ文字を処理する方法を知っている人はいますか?理想的には上記のような棒グラフを見たいです。 Ubuntu 12.04.1 LTSを実行しています。

ベストアンサー1

使用できるアハ(一部のLinuxディストリビューションにもパッケージされています)ANSIシェーディングシーケンスをHTMLに変換します。

#! /bin/sh -
sendmail -t -oi << EOF
To: [email protected]
Subject: Weekly Disk Report
MIME-Version: 1.0
Content-Type: text/html; charset="us-ascii"
Content-Disposition: inline

$(discus | aha)
EOF

おすすめ記事