Shell脚本电子邮件格式错误?

时间:2014-07-24 16:47:48

标签: shell unix formatting

我的脚本完全正常并生成一个文件。该文件是纯文本格式,格式如何(我希望结果看起来像这样。)格式化。但是,当我尝试将文件发送到我的电子邮件时,格式化完全错误。

我用来发送电子邮件的代码行。

cat ReportEmail | mail -s 'Report' bob@aol.com

我收到的电子邮件的结果。

 30129                 22.65        253
 96187                 72.32            294
109525                 82.35            295
 10235               7.7            105
  5906              4.44            106
 76096                 57.22            251

我希望结果看起来像这样。

 30129                 22.65            253
 96187                 72.32            294
109525                 82.35            295
 10235                   7.7            105
  5906                  4.44            106
 76096                 57.22            251

1 个答案:

答案 0 :(得分:1)

您的源文件通过使用制表符和空格的组合来实现列对齐。但是,分配给选项卡的宽度可能因程序而异。例如,宽度为4,5或8个空格是常见的。如果您希望从一个查看器到下一个查看器的纯文本格式一致,请仅使用空格。

作为一种变通方法,您可以在使用mail实用程序将文件传递到expand之前将标签扩展为空格:

expand -t 8 ReportEmail.txt | mail -s 'Report' bob@aol.com

选项-t 8告诉expand将标签视为8个宽的空格。将8更改为始终使ReportEmail.txt中的格式正常工作的任何数字。