如果您經常在編輯器中編寫HTML,然後粘貼到WordPress中,您會注意到有時會添加惱人的格式標記(如標記)。使用簡單的shell腳本,您可以通過幾個簡單的命令自動清除那些垃圾HTML格式。
為什麼使用shell腳本?如果你是編程新手,從小事做起會更好。不僅你不太可能放棄,而且你還有機會停下來學習。也就是說,你的第一個程序可以非常有用,即使它們也非常簡單。
Shell腳本是一個很好的開始編寫代碼的地方,原因很明確:很容易在幾行代碼中組合一些東西,這將為您節省大量時間。讓我們來看看幾個食譜,或“模式”,你可以重新調整到自己的腳本。
首先,讓我們從定義“shell腳本”開始,即編寫要在bashshell中運行的腳本。從技術上講,Powershell等其他腳本語言也可以被稱為“shell腳本”,但為什麼首先要關注shell腳本,特別是Bash腳本呢?
考慮到上面的內容,這裡有一些有用的shell腳本的想法,您只需幾行代碼就可以將它們組合在一起。我們將構建幾個腳本來增強Pandoc轉換實用程序已經相當強大的功能。
使用shell腳本最簡單、最直接的方法是作為現有命令的快捷方式。一些命令行程序有大量的標誌,它們的語法並不總是清晰的。但是您可以使用這些命令中的一個,以及所有複雜的選項,並將它們放入一個具有更易於輸入的名稱的shell腳本中。考慮以下命令,該命令在標記文件上運行Pandoc,並使用模板文件創建ODT文件:
pandoc -r markdown -w odt --reference-odt=/path/to/folder/containing/mscript-template.odt -o manuscript.odt manuscript.md我每天都使用Pandoc,因為我用Markdown和ascidoc等輕量級標記編寫所有內容。然而,當轉換到ODT時,我鍵入“ODT reference”而不是“reference ODT”。單身。時間。另外,模板的路徑不會像大多數shell命令那樣自動完成。創建一個簡單的腳本可以避免所有的錯誤輸入:
#! /bin/bashpandoc -r docbook -w odt --reference-odt=/path/to/folder/containing/mscript-template.odt -o $1.odt $1腳本的第一行指示系統使用bashshell來運行它。下一個在命令行中接受第一個參數($1),並運行帶有一組標誌的Pandoc。值得注意的是,還有其他方法可以做到這一點,例如在Unix系統上使用alias命令。但是**小型shell腳本意味著您可以將它們放在手邊(例如在~/bin文件夾中),快速地將它們複製(或同步)到其他地方,並使用任何文本編輯器更改它們。使用易於記憶和鍵入的文件名保存腳本(例如“markdown2odt.sh公司"). 別忘了給它可執行權限。
用管道(“|”)字符連接兩個終端命令會導致第一個命令的輸出用作第二個命令的輸入。(如果您以前從未見過這種情況,請查看我們的命令行快速指南。)但是,必須以正確的順序鍵入兩個命令,並使用正確的參數,只會使我們剛才討論的問題更加複雜。將這個雙重命令包裝到shell腳本中,使其更加方便。
我使用Pandoc的一個技巧是“清除”HTML格式,或者刪除所有內聯樣式。如果您曾經嘗試過將字處理器文檔導出為HTML,您會看到在文本中添加了大量樣式(span標記)。
Docbook XML格式沒有內聯樣式的約定,因此如果我們將HTML轉換為Docbook,所有這些格式都會被丟棄。然後我們可以使用Pandoc將DocBook轉換回HTML,然後我們得到一個很好的標記,您可以(例如)粘貼到WordPress中。下面的腳本將它們鏈接到一起,而不是單獨調用Pandoc:
上面利用了“標準輸入”和“標準輸出”的終端概念,如果您運行命令的第一部分,您將在終端中看到一大堆XML。原因是我們沒有給Pandoc任何其他輸出(比如一個文件)來使用。所以它使用的是唯一的後援:標準輸出,在這裡是終端。
另一方面,第二個Pandoc命令末尾的破折號意味著它應該使用“標準輸入”。如果它自己運行,您將收到一個提示,shell將等待您通過它的默認輸入,通過鍵盤輸入一些文本。當我們將它們結合起來時,您幾乎可以想象第一個命令將一堆XML輸出到終端,然後立即通過管道輸入第二個命令作為輸入。
結果是,如果您將其重命名為“clean-html.sh文件,“您可以在任何HTML文件上運行它,以擺脫那些煩人的樣式。最好的部分是Pandoc將從文件中讀取,然後在最後覆蓋它,這意味著沒有散亂的臨時文件。
有些程序允許您在命令行中指定通配符,如星號。例如,這允許您將所有JPG圖像移動到“圖片”文件夾:
mv *.jpg ~/Pictures但其他程序一次只接受一個文件作為輸入,Pandoc就是其中之一。那麼,當我們有一個完整的目錄,其中充滿了導出的HTML文件,我們想清理HTML格式時會發生什麼呢?我們需要進行“清潔”嗎-html.sh文件“手動編寫每個腳本?
不,因為我們不是新手。我們可以將管道命令包裝為“for each”循環。這將依次轉到當前目錄中的每個HTML文件,並對其執行清除操作。我們還可以通過echo語句添加一條消息,讓我們知道所有文件都已處理完畢:
for filename in ./*.htmldo pandoc -w docbook $1 | pandoc -r docbook -w html -o $1 - echo "Working on $1... HTML is clean!"done現在,如果你有一個滿是“髒”HTML的文件夾,你可以在上面運行這個腳本,最後得到一些非常乾淨的HTML格式。
如果你喜歡修修補補,你會喜歡shell腳本,因為總是有調整要做。關於如何使用這些模式作為其他腳本的基礎的一些想法包括:
如您所見,使用shell腳本,您可以一次構建一點東西,在提示符處測試它們,並在運行時將它們固定到腳本上。
你怎麼說,shell腳本現在看起來沒有那麼嚇人了嗎?你準備好嘗試自動化你最枯燥的任務了嗎?如果你決定加入,請在下面的評論中告訴我們!
... CGI在許多方面增強了網站。從對使用者進行身份驗證到提供全面的購物應用程式,CGIs是使web具有動態性和互動性的核心。下面是使用CGIs增強使用者體驗的一些主要好處。 ...
...經搜尋了網際網路,為您帶來了各種很酷的模板,您可以使用商業,個人,投資組合,和各種其他網站。就選一個開始吧! ...
一旦您切換到所選的Linux發行版並掌握了使用者介面,您應該很樂意繼續。但是如果你想要額外的功能呢?如果在幾個選單上單擊滑鼠並不能提供您所期望的超級使用者體驗,該怎麼辦? ...
... 如果您是一個必須使用Windows系統的系統管理員,也可以使用程式碼在Mac上編寫Powershell。開發人員可以找到支援幾乎任何語言的外掛。 ...
許多年來,釋出一個網站是許多使用者無法企及的。HTML創作、託管帳戶和管理託管檔案的更新對於一般的非技術人員來說太多了。現在,使用者可以註冊Tumblr帳戶,並在幾分鐘內輸入他們的第一篇文章。 ...
...到的一個問題是檔案相容性。你總是會給其他作業系統的使用者傳送檔案,當他們在Word這樣的應用程式中開啟時,看起來就不一樣了。雖然您可以安裝字型或嘗試vm或模擬器,以確保外觀一致,但另一種方法是以純文字格式完成...
...人都知道編寫好應用程式的重要性。沒有什麼比一個難以使用的複雜寫作軟體更能扼殺創造力了。 ...
...指令碼,完全解決了他們的問題,他們可能仍然擔心自己使用終端。在這種情況下,您不妨手動為它們執行所有操作。 ...
...式。它退出那些應用程式,然後安全地彈出驅動器。如果使用外部驅動器進行備份,此工具可以使備份過程更輕鬆。 ...