11.5. 文本转换/过滤器工具

过滤器(UNIX 系统/dos 格式)

以下过滤器允许您将文本从 Dos 样式更改为 UNIX 系统样式,反之亦然,或者将文件转换为其他格式。另请注意,许多现代文本编辑器可以为您执行此操作...

为什么要使用过滤器?

因为 UNIX 系统和 Microsoft 使用两种不同的标准来表示 ASCII 文本文件中的行尾符。

这有时会在不熟悉另一种操作系统行尾样式的编辑器或查看器中引起问题。以下工具允许您解决这种差异。

有什么区别?

区别非常简单,在 Windows 文本文件中,换行符由回车符后跟换行符表示,在 ASCII 中为 '\r\n'。

UNIX 系统上,换行符只是一个换行符,在 ASCII 中为 '\n'。

dos2unix

此命令将 Microsoft 样式的行尾字符转换为 UNIX 系统样式的行尾字符。

只需输入

dos2unix file.txt
fromdos

这与 dos2unix (如上所述)的作用相同。

只需输入

fromdos file.txt

fromdos 可以从 from/to dos 网站获取。

unix2dos

此命令将 UNIX 系统样式的行尾字符转换为 Microsoft 样式的行尾字符。

只需输入

unix2dos file.txt
todos

这与 unix2dos (如上所述)的作用相同。

只需输入

todos file.txt

todos 可以从 from/to dos 网站获取。

antiword

此过滤器将 Microsoft Word 文档转换为纯 ASCII 文本文件。

只需输入

antiword file.doc

您可以从 antiword 主页获取 antiword

recode

在各种格式之间转换文本文件,包括 HTML 和数十种不同的文本编码形式。

使用 recode -l 获取完整列表。它也可以用于在 WindowsUNIX 系统格式之间转换文本(因此您不会得到奇怪的符号)。

Caution警告
 

默认情况下,recode 会覆盖输入文件,使用 '<' 将 recode 仅用作过滤器(并且不覆盖文件)。

示例

UNIX 系统文本转换为 Windows 文本

recode ..pc file_name

Windows 文本转换为 UNIX 系统文本

recode ..pc/ file_name

UNIX 系统文本转换为 Windows 文本,但不覆盖原始文件(并创建一个新的输出文件)

recode ..pc < file_name > recoded_file
tr

(仅限 Windows 到 UNIX 系统样式转换)。虽然 tr 不是专门设计用于将 Windows 格式的文件转换为 UNIX 系统格式,但通过执行以下操作

tr -d '\r' < inputFile.txt > outputFile.txt

-d 开关表示简单地删除字符串的任何出现。由于我们正在寻找 '\r',即回车符,它将删除找到的任何回车符,使文件成为 UNIX 系统文本文件。您可以在此处阅读有关 tr 的更多信息:第 11.4 节

11.5.1. 转换工具

enscript

将文本文件转换为 PostScript、RTF、HTML(使用 ghostview 查看 PostScript 文件)。enscript 有大量选项可用于自定义输出。

示例:[1]

enscript --language=html input_file.txt -o output_file.html

这将获取某个文件并将其输出为 html 文件。

enscript --help-highlight

显示有关使用高亮显示功能的帮助(列出所有可用的不同类型的高亮显示)

enscript --help-highlight

高亮显示(美化打印),示例

enscript -E --color --language=html --toc --output=foo.html *.h *.c 

将所有带有 .h 和 .c 的文件(C 源文件和头文件)添加到名为 foo.html 的文件中,使用颜色并添加目录

有关更多选项,请参阅 enscript 写得很好的手册页。

figlet

用于创建 ASCII “艺术字”。Figlet 可以创建几种不同形式(字体)的 ASCII 艺术字,它是周围比较不寻常的程序之一。

注释

[1]

这些示例基于 enscript 手册页的信息,有关更多信息,请参阅 参考文献 中的 [12]。