我已經討論過這個問題,但是我發現最流行的答案實際上是錯誤的,因為頁面在google中仍然會出現,我認為評論這個問題有意義。 我不能在原始討論中評論,因為我的聲譽太低,所以如果管理員認為應該移動,請不要 panish 。
因此,我們要刪除所有內容,這些內容由html註釋標記表示This is how my text (html) file looks like
最投票的答案建議了以下代碼#!/bin/sed -f
# Delete HTML comments
# i.e. everything between
# by Stewart Ravenhall
//!{
N
ba
}
s///
當它在簡單的情況下工作時,當另一個註釋從同一行開始時,它。 例如輸入
在應用腳本 上面 之後,將給出
這意味著只有第一個評論會被刪除。 原因是在應用替換命令后,代碼不會檢查緩衝區是否也具有下一個註釋的起始標記。
這個問題的解決方法是修改如下代碼#!/bin/sed -f
:x
//!{
N
ba
}
s///
bx
或者,以簡短的形式cat file.html | sed ':x;//!{N;ba};s///;bx'
我認為更正這個腳本是很重要的,因為它列在抓取的seder包of上
我已經修改了一些簡潔且優雅的解決方案( 我已經修改了一點)cat file.html | sed ':a;s///g;/