Linux 的 3 个命令行文件转换工具

591 位读者喜欢这篇文章。
How to upgrade your Fedora Linux system with DNF

Opensource.com

最近,一位朋友天真地问我文件格式有多少种。我半开玩笑地回答说:“想象一下一个装满沙滩沙子的汤碗。”

好吧,文件格式并没有那么多。 也就是说,您可能从未听说过许多常用格式,这些格式足以在维基百科上列出。 您很可能永远不会看到也永远不会使用它们中的大多数。 但是,如果您想要或需要转换文件格式,那么有很多应用程序可以完成这项工作。

让我们来看看 Linux 命令行中三个可靠的文件转换工具。

Pandoc

我认识的每个使用标记语言的人都说 Pandoc 是在这些语言之间进行转换的首选实用程序。 这是有充分理由的:Pandoc 不仅可以进行一些非常出色的转换,而且速度也很快。

有一个使用 Markdown 格式化的文件,您想将其转换为 LibreOffice Writer 文档吗? 您想要将 LaTeX 文档转换为 EPUB 吗? 或者,也许您有一个 HTML 文件,您想将其转换为幻灯片演示文稿。 Pandoc 可以胜任所有这些任务。 还有更多。

以下是如何使用 Pandoc 进行简单转换(在本例中,从 HTML 转换为 reStructuredText

pandoc -t rst myFile.html -o myFile.rst

您不仅限于直接转换。 例如,您可以向结果文件添加目录、印刷引号、自定义标题和语法高亮。 请查看 Pandoc 的文档 以了解详细信息。

然而,Pandoc 仅处理基于文本的文件。 如果您有一个二进制文件,例如文字处理器文档,会发生什么情况? 命令行帮助来自一个意想不到的来源。

LibreOffice

您可能会想,“等等! LibreOffice 是一个 GUI 应用程序。” 是的,它是。 但很多人不知道的是,您可以从命令行运行 LibreOffice 以快速转换一个或多个文件。

如何操作? 例如,要将 LibreOffice Impress 幻灯片演示文稿转换为 PDF,您可以键入以下内容

soffice --headless --convert-to pdf mySlides.odp

您只需将 pdf 替换为您要转换成的任何文件格式的扩展名。 如果您想知道,--headless 选项会阻止在您的桌面上打开一个空的 LibreOffice 窗口。

在命令行中使用 LibreOffice 转换单个文件有点小题大做。 但是,求助于命令行是同时转换多个文件的好方法。 例如,如果您想将文件夹中的所有 Microsoft Word 文档转换为 LibreOffice Writer 格式,您可以键入

soffice --headless --convert-to odt *.docx

转换所花费的时间远少于在 LibreOffice Writer 中打开所有这些文件并手动进行转换。

FFmpeg

Pandoc 是用于在标记语言之间进行转换的瑞士军刀,而 FFmpeg 则是 Pandoc 在音频和视频格式方面的对立面。

FFmpeg 是一组库和可执行文件,使您能够在几乎任何格式之间无缝转换。

这是一个将视频从 AVI 转换为 Ogg Theora 的简单转换示例

ffmpeg -i myVideo.avi myvideo.ogg

FFmpeg 可以做的远不止这些。 您可以设置视频的帧率并向其添加字幕,更改宽高比,更改音频质量等等。

如果您选择使用多个选项,命令行可能会变得非常拥挤。 很容易忘记这些选项,特别是如果您只是偶尔使用 FFmpeg。 听取一位老技术作家的建议:阅读文档 并不丢人。

您是否有最喜欢的命令行文件转换工具? 欢迎通过在下面留言分享。

标签
That idiot Scott Nesbitt ...
我是一位自由/开源软件的长期用户,为乐趣和利润撰写各种文章。 我不太把自己当回事,我所有的特技都是自己完成的。

21 条评论

很棒的 LibreOffice 技巧,Scott! 我通常启动 GUI,但对于将几个文件转换为 .pdf 来说,这更容易。

谢谢,Robin。 这是我最喜欢的 LibreOffice/OpenOffice 技巧之一,并且与几年前我被迫想出的更复杂的转换工作流程配合得非常好。

回复 作者 robinmuilwijk

我也是。 我想我曾在某个时候听说过这个功能,但我忘记了。 我倾向于通过 SSH 连接完成大量工作,因此能够在不进行 X 转发的情况下做更多事情让我很高兴。

回复 作者 robinmuilwijk

在讨论转换工具时,最好包括 ImageMagick 工具套件附带的 `convert` 命令。 :) 我发现自己经常使用它。

convert 超级有用。 我有一个小脚本,使用 convert 在我将图像发布到我的网站时向图像添加 Creative Commons 徽标和我的网站徽标。

回复 作者 Jason van Gumster

我最近查了一下,有人建议 mogrify 可能比 convert 命令更好。 示例:mogrify -format png somedoc.pdf
您也可以使用此命令进行批量处理。

回复 作者 ScottNesbitt

很棒的文章,Scott。 我知道“ffmpeg”转换,但不知道其他两个。 命令行上还有“pdftotext”。

与 Libre/OpenOffice 相关的是 unoconv。

我相信功能是相似的,但可能没有完整“soffice”实例的开销?

当我写这篇文章的 pandoc 部分的介绍时,我确实想到了你...

回复 作者 bbehrens

很棒的文章! 我选择 Pandoc! 我一直在寻找类似这样的文章!

我想是因为我不在合适的工作领域? 但我不知道什么时候我需要将大量文件从一种格式重命名为另一种格式? 我能想到我需要这样做的情况只有当我从事音频/视频制作/工程等领域的工作时。 在那里,您可能会有一堆音频文件,它们的格式对于压缩等来说是错误的,或者可能有一堆需要在演出中批量重命名的艺术作品。 但作为家庭用户,我基本上从网上收集大量 PDF,并且喜欢在阅读时听流媒体爵士乐,我不知道我会使用这些工具中的任何一个。

虽然当您处于内容创建方面(而不是消费内容)时,使用此类工具肯定更常见。 但是,当您确实拥有大量文件库(电子书、音乐、视频等)时,很多人喜欢将他们的文件同质化,以便它们都采用相同的格式。 例如,如果您有各种电子书,并且它们混合了 PDF、EPUB、MOBI 和纯文本,您可能会在某些设备上阅读这些电子书时遇到问题。 但是,如果您将所有这些书都转换为 EPUB,那么您至少拥有了一个可靠且一致的基线,可以从中开始工作。

回复 作者 Eddie G. (未验证)

数据迁移的绝佳工具! 我曾多次希望有这样的工具。 感谢提示,在工作服务器上安装了 LibreOffice 并对其进行了测试,它将非常适合我们的一些工作流程,其中包括大量数据格式转换。 这会让几个人非常高兴。

回复 作者 Eddie G. (未验证)

绝佳的时机! 我正准备开始一个需要从网络抓取数据的项目,
pandoc 将使其变得更加容易。

我经常使用的另一个文件转换工具是 openssl。 当处理
需要多种格式的证书时,它非常宝贵。

我使用一个名为 sox 的实用程序来转换音频文件格式。 从它的手册页

SoX 以大多数流行的格式读取和写入音频文件,并且可以选择性地应用
效果。 它可以组合多个输入源,合成音频,并且在
许多系统上,充当通用音频播放器或多轨音频录音机。
它还具有将输入拆分为多个输出文件的有限能力。

不错。 我以前从没看过 Pandoc,所以谢谢你

这是一篇很棒的文章,谢谢你 Scott! 也许不相关,但让我想到命令行 PDF 操作工具,如 PDFtk 和 QPDF。

© . All rights reserved.