Linux下三款流行的命令行文件轉(zhuǎn)換工具
譯文【51CTO.com快譯】最近,一位朋友天真地問(wèn)我計(jì)算機(jī)世界中到底共有多少種文件格式。我半認(rèn)真半開(kāi)玩笑地回應(yīng),“一個(gè)湯碗裝滿(mǎn)海灘沙子后對(duì)應(yīng)的沙粒的總數(shù)也就是這個(gè)世界上文件格式的總數(shù)。”
好吧,自然沒(méi)有那么多的文件格式(https://en.wikipedia.org/wiki/List_of_file_formats)。即便如此,你可能從未聽(tīng)說(shuō)過(guò)像維基百科上所列舉的那么多的常用的文件格式?,F(xiàn)實(shí)情況是,你會(huì)永遠(yuǎn)看不到而且也永遠(yuǎn)不會(huì)使用那么多的文件類(lèi)型。然而,如果你想要或需要實(shí)現(xiàn)文件格式之間的相互轉(zhuǎn)換,那么確實(shí)存在不少這方面的工具程序供你選用。
下面,讓我們來(lái)學(xué)習(xí)三種流行的Linux平臺(tái)上的命令行文件類(lèi)型轉(zhuǎn)換工具。
Pandoc
所有我認(rèn)識(shí)的使用標(biāo)記語(yǔ)言的用戶(hù)都說(shuō)Pandoc(http://pandoc.org/)是轉(zhuǎn)換這些語(yǔ)言的最常用工具。其實(shí),這里有一個(gè)很好的理由:Pandoc不只是支持實(shí)現(xiàn)一些非常漂亮的轉(zhuǎn)換,而且轉(zhuǎn)換速度也非??臁?/p>
你是否有一個(gè)Markdown格式的文件想要轉(zhuǎn)換為L(zhǎng)ibreOffice Writer文檔格式?或者,有一個(gè)LaTeX文檔你想要轉(zhuǎn)換成一個(gè)EPUB文檔?或者,也許你有一個(gè)HTML文件想轉(zhuǎn)換成一個(gè)幻燈片。Pandoc能夠勝任所有這些任務(wù);當(dāng)然,還有更多的功能。
下面給出的是使用Pandoc進(jìn)行簡(jiǎn)單的文件格式轉(zhuǎn)換的一個(gè)例子(在本例中實(shí)現(xiàn)從HTML格式轉(zhuǎn)換為reStructuredText格式):
pandoc -t rst myFile.html -o myFile.rst
其實(shí),你不只是限于直接轉(zhuǎn)換。例如,你還可以向生成的結(jié)果文件中添加內(nèi)容表格、印刷引用、自定義標(biāo)題及語(yǔ)法高亮顯示等。有關(guān)細(xì)節(jié),請(qǐng)查閱Pandoc的參考文檔(http://pandoc.org/MANUAL.html#options)。
然而,需要注意的是,Pandoc只能夠處理基于文本的文件。如果你有一個(gè)二進(jìn)制文件,如字處理器文檔文件時(shí),會(huì)發(fā)生什么呢?在命令行運(yùn)行時(shí)將顯示用戶(hù)提供的是一個(gè)意想不到的文件源這樣的提示。
LibreOffice
您可能會(huì)想,“停??!LibreOffice(http://libreoffice.org/)是一個(gè)GUI應(yīng)用程序。不錯(cuò),的確如此。但是,很多人不知道的是,你也可以從命令行運(yùn)行LibreOffice來(lái)快速轉(zhuǎn)換一個(gè)或多個(gè)文件。
那么,如何使用LibreOffice呢?舉例來(lái)說(shuō),若要使用LibreOffice把一組幻燈片轉(zhuǎn)換成PDF,你可以使用如下命令行內(nèi)容:
soffice --headless --convert-to pdf mySlides.odp
在此,你只需將pdf擴(kuò)展名替換成任何你想要轉(zhuǎn)換的文件格式的擴(kuò)展名即可。至于--headless選項(xiàng),其作用是防止在運(yùn)行上述命令時(shí)在您的桌面上打開(kāi)一個(gè)空的LibreOffice窗口。
在命令行上使用LibreOffice轉(zhuǎn)換單個(gè)文件格式有點(diǎn)小題大做。然而,在命令行下一次轉(zhuǎn)換多個(gè)文件是一種不錯(cuò)的方式。例如,如果你想要將某文件夾中所有的微軟Word文檔轉(zhuǎn)換為L(zhǎng)ibreOffice Writer文件格式,你只要使用如下命令即可:
soffice --headless --convert-to odt *.docx
這種命令行方式轉(zhuǎn)換所需要的時(shí)間遠(yuǎn)遠(yuǎn)少于在LibreOffice Writer軟件中打開(kāi)所有這些文件并手動(dòng)進(jìn)行轉(zhuǎn)換的時(shí)間。
FFmpeg
如果說(shuō)Pandoc是實(shí)現(xiàn)標(biāo)記語(yǔ)言之間進(jìn)行轉(zhuǎn)換的瑞士軍刀,那么FFmpeg就相當(dāng)于Pandoc在音頻和視頻格式文件轉(zhuǎn)換領(lǐng)域的“瑞士軍刀”。
FFmpeg是一組庫(kù)和可執(zhí)行文件的集合,借助于此工具你能夠?qū)崿F(xiàn)幾乎任何格式文件間的相互轉(zhuǎn)換。
下面給出的是使用FFmpeg把一個(gè)AVI格式的視頻文件轉(zhuǎn)換為一個(gè)Ogg格式的視頻文件的使用舉例:
ffmpeg -i myVideo.avi myvideo.ogg
其實(shí),F(xiàn)Fmpeg的功能比這要復(fù)雜的多。例如,你可以設(shè)置視頻的幀速率并向其中添加字幕,更改縱橫比,改變音頻,以及更多的控制。
如果你選擇使用多個(gè)控制選項(xiàng)時(shí),命令行就會(huì)變得相當(dāng)擁擠。特別是,當(dāng)你只使用FFmpeg的如上述這樣少數(shù)幾個(gè)選項(xiàng)時(shí),很容易忘記另外一些選項(xiàng)。在此,建議你經(jīng)常閱讀一下有關(guān)此工具的幫助文件,地址是https://ffmpeg.org/ffmpeg.html。
你也有自己最喜歡的命令行文件轉(zhuǎn)換工具嗎?希望您也能與我們一起分享吧。
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】