2つのタグの間でテキストを抽出して埋め込む方法について説明しました。

2つのタグの間でテキストを抽出して埋め込む方法について説明しました。

このコマンドが私にうまくいかない理由を見つけようとしています。

sed -n -e '/<a href=\(.*\)>/,/<\/a>/p' text.html

text.html には次の内容があります。

<somestupidstuff> <a href='teste'> teste </a> </somestupidstuff>

希望の出力は次のとおりです。

<a href='teste'> teste </a>

しかし、私が得るものは次のとおりです。

<somestupidstuff> <a href='teste'> teste </a> </somestupidstuff>

おそらく正規表現を完全に理解できないかもしれません。

ベストアンサー1

grepあなたの場合には使いやすくなります。たとえば、

grep -o '<a href=[^<]*<\/a>'

以下を試してください<<a href>..</a>

grep -o '<a href=.*<\/a>'

<a href=...</a>ただし、同じ文字列が複数回表示されると、予期しないデータが返される可能性があることに注意してください。

sedパターンがある行を含む行と行の間のすべての行を印刷するように指示する/pattern1/,/pattern2/pため、機能しません。sedpattern1pattern2

問題はsed解決する可能性がありますが、内容によって異なりますsomestupidstuff(たとえば、すべての場合で同じですか)。

おすすめ記事