2012-07-01 161 views
0

我有一些HTML文件,並希望與包含這些代碼只提取線:奇怪的輸出sed的

head 
p 

我用sed將提取的文件的這些部分,具體如下:

grep "<head>" myfile.html | sed -e 's%\(head\)\(.*\)\(/head\)%title\2\/title%' 

grep "<p>" myfile.html | sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2\\%' 

一切正常,但我在每行的末尾都會得到「\」字符。我如何克服這個問題?

回答

1

不要在替換字符串的末尾使用\:

grep "<p>" myfile.html | sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2%' 
2

在此命令,你告訴它由包括雙反斜線添加一個反斜槓:

sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2\\%' 

嘗試刪除反斜槓:

sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2%' 

而且,你不需要grep

sed -ne '/<p>/{s%\(<p>\)\(.*\)\(</p\)\(>\)%\2%;p}'