bash脚本,将日志文件作为邮件内容发送,格式设置特定的颜色编码

问题描述

cat run_summary.txt | unix2dos | mail -s "summary log" email_id@gmail.com

此命令将邮件作为邮件正文发送。但是,它没有格式化。 run_summary.txt的行带有列,但在电子邮件中与日志文件中的不同。日志文件的格式如下。

below is the summary of log files:
#empty line
date time mon
12   09   jan
07   22   apr

解决方法

不需要cat命令。您应将文件重定向到mail命令。

此外,unix2dos命令可以处理文件,而不是字符串。在您的情况下,unix2dos命令由于cat命令而得到一个字符串。请阅读unix2dos命令的手册页:https://linux.die.net/man/1/unix2dos

示例:

mail -s "summary log" my_mail@gmail.com < run_summary.txt 

如果您确实需要unix2dos命令,则可以执行以下操作:

unix2dos run_summary.txt && mail -s "summary log" my_mail@gmail.com < run_summary.txt

仅供参考: 在上面的示例中,run_summary.txt文件中的原始内容将被覆盖。如果要创建一个新文件,则应使用-n标志。 例如:

Convert a.txt and write to e.txt.

unix2dos -n a.txt e.txt

我使用了与您相同的txt文件,邮件中包含以下内容:

date time mon
12   09   jan
07   22   apr