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. (not verified)

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

回复来自 Eddie G. (not verified)

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

我经常使用的另一个文件转换工具是 openssl。在处理以下情况时,它非常宝贵
需要以各种格式存在的证书。

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

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

很好。我以前从没看过 Pandoc,所以谢谢你

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

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.