0

いくつかの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\\%'

すべて問題ありませんが、各行の最後に「\」の文字が表示されます。この問題をどのように克服できますか?

4

2 に答える 2

2

このコマンドでは、ダブルバックスラッシュを含めることでバックスラッシュを追加するように指示しています。

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

バックスラッシュを削除してみてください。

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

また、あなたは必要ありませんgrep

sed -ne '/<p>/{s%\(<p>\)\(.*\)\(</p\)\(>\)%\2%;p}'
于 2012-07-01T17:48:14.813 に答える
1

置換文字列の末尾に\を使用しないでください。

grep "<p>" myfile.html | sed -e 's%\(<p>\)\(.*\)\(</p\)\(>\)%\2%'
于 2012-07-01T17:48:29.953 に答える