2014-09-05 52 views
0
$ sed -n '/<body>/,/<\/body>/p' hello.html 

該命令正​​常工作,並給出了預期的結果。 我想打印只有那些之間和生產線(包括這些標籤也一樣)的html文件命名爲hello.html如何在sed腳本中使用-n標誌,我用它並給出錯誤

,但是當我嘗試創建命名爲html-body.sed一個sed腳本使用此命令爲:

-n /<body>/,/<\/body>/p 

,當我嘗試運行它....

$ sed -f html-body.sed hello.html 

提示錯誤爲:

sed: file html-body.sed line 1: unknown command: `-' 

爲什麼在sed腳本中寫入相同命令時會出現此錯誤。

+6

你不能使用任何'-'一個腳本文件中選擇使用sed – 2014-09-05 19:30:54

+0

作爲@Jidder說,你不能把sed命令行參數到SED程序腳本文件。您可以將整個sed命令放入腳本中,也可以在命令行中使用-n。 – 2014-09-05 20:16:32

回答

1

sed腳本只允許持有sed文本處理命令,不是選項sed本身。

這些選項需要在實際的命令調用上。

,您仍然可以使用一個sed腳本,但你必須與稱之爲選項:

sed -n html-body.sed hello.html 

有一件事你可以做的是切換到更強大的文本處理工具,如awk與下面的腳本:

/<body>/ {e=1} 
      {if(e==1){print}} 
/<\/body>/ {e=0} 

然後只需運行:

awk -f thatscript.awk inputfile 
相關問題