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