2013-05-20 49 views
0

我的問題幾乎相同,這一個:Bash remove everything after </html>。然而,答案bash刪除一切後,直接html

sed -i '/<\/html>/,$d;$a <\/html>' yourfile 

也剝離標籤。我已經嘗試了各種各樣的sed命令和|管道另一個命令重新添加結束標記,但沒有任何工作。

總之,我試圖刪除標籤後的所有內容,即使在同一行上也不行。

+1

'sed'/ <\/html>/q'infile'正常工作 – anubhava

+0

不,它不會剝離結束標籤,或者說,它會在最後添加它。 – tripleee

回答

1

方式一:

sed -n '1,/<\/html>/{s!</html>.*!</html>!;p}' input 

另:

sed -e 's!</html>.*!</html>!' -e '/<\/html>/q' input 
+0

超現實,謝謝。不幸的是,這些文件都沒有修改。甚至當我使用-i時。 - 第一種方法消除一切從正向下一行標籤(離開後的代碼後 - 但在同一行 - 在 - 第二種方法無法找到文件不管我怎麼佈局 - i/-e標誌,但是,單獨運行命令工作!有沒有辦法將這些命令一起作爲一個命令(遞歸地)在目錄上運行? –

0
sed -i -n '0,/<\/html>/{s!</html>.*!</html>!;p};q' input 

</html>在同一行後,將刪除任何東西,並刪除所有後續行(只是;q加入perreal的第一種方式) 。 -i適合我(GNU sed 4.2.1)。