如何正确格式化文本文件以供每个人阅读

时间:2013-01-04 21:28:15

标签: bash

在生成一些MySQL脚本之后,我得到了一些输出表,我用awk + ​​printf安排,以使所有内容完美对齐和漂亮。 但是,当发送给其他任何人时,如果该文件是在Windows,Blackberry或Android中打开的,那么它看起来很糟糕且不对齐。

是否有任何格式(除了pdf或图像),我可以确保每个人都能正确阅读? 目前的格式是:

$ file sample.txt 
sample.txt: UTF-8 Unicode text

感谢。

5 个答案:

答案 0 :(得分:1)

听起来你正在使用固定宽度的字体(如信使),这是终端会话的典型特征,并依靠它来很好地排列你的数据。对于那些情况,它工作正常。此外,如果用户默认其邮件阅读器使用固定宽度的字体。

问题是,您将消息发送给使用GUI工具(如outlook,或Web邮件客户端或许多其他人)使用按比例间隔字符的人,因此'1'占用的空间少于'0'(例如),然后你得到一些丑陋的东西。

如果这是针对公司项目并且受支持的邮件阅读器范围有限,您应该能够“包装”报告并指定固定宽度的字体。即使在公司组织中,这仍然不是完美的,如果您的用户群更加通用,那么确保每个人都能获得完美格式的报告变得更加困难。也许您需要添加一些资格,例如“使用xxx邮件阅读器时提供的最佳格式”。

您可以在此处发布到https://webmasters.stackexchange.com/,并询问有关正确呈现概率很高的简单HTML格式的建议。

IHTH

答案 1 :(得分:1)

最简单,最通用的格式化文本选项是HTML。坚持HTML 2.0或3.2(对于表格)将为客户提供错误的机会。

答案 2 :(得分:1)

这取决于您的同事的技术娴熟,但我建议使用CSV,因为这是大多数办公室中相对常见的格式。否则,是的,html表是一个很好的方法。

不确定数据的结构是什么,但您可以将其设置为逗号分隔格式,或者使用Perl / Python脚本为您执行此操作。

答案 3 :(得分:1)

如果使用制表符(ASCII 9),则表格应按比例字体排列。它并不完美,但大多数程序都能正确显示。要在printf中创建制表符,请将其指定为\t

答案 4 :(得分:0)

感谢大家的评论。 我的解决方案是:

  1. 我尝试了txt2htm来检查我的原始代码(我的意思是,我的数据表)是如何被转换的。
  2. 我安排了一些代码,让它最简单。
  3. 由于我的txt文件已经“很好”,我只需要在每个txt文件的开头和结尾插入以下代码,我必须与其他人共享。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    </head>
    <body>
    <pre>
    
    HERE GOES MY FIXED WIDTH TABLE
    
    </pre>
    </body>
    </html>
    
  4. 此处的关键标记为<pre>,字面意思是:

      

    <pre>标记定义了预格式化的文本。<pre>元素中的文字是   以固定宽度字体(通常为Courier)显示,并保留   空格和换行符。“