我有一些html文件,并且只想提取包含这些标记的行:
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\\%'
一切都很好,但我在每一行的末尾都有“\”字符。我怎么能克服这个问题?
答案 0 :(得分:2)
在这个命令中,你告诉它通过包含双反斜杠来添加反斜杠:
sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2\\%'
尝试删除反斜杠:
sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2%'
此外,您不需要grep
:
sed -ne '/<p>/{s%\(<p>\)\(.*\)\(</p\)\(>\)%\2%;p}'
答案 1 :(得分:1)
请勿在替换字符串末尾使用\:
grep "<p>" myfile.html | sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2%'