sedコマンドでHTMLタグの中身を取得する

HTMLソースで以下のようなタグの場合、<h2>~</h2>に囲まれた「TEST」のみを取得したい場合ですが、sedコマンドを利用するとタグで囲まれた中身を取得できます

<h2>test</h2>

使用するsedコマンドは、「sed -e 's/<[^>]*>//g’」のようにします。<xx>~</xx>に囲んでいるHTMLタグを削除してます

#!/bin/bash

html="<h2>test</h2>"

echo $html | sed -e 's/<[^>]*>//g'

<table>, <h4>や特定のタグに対しての値も取得することができます。その場合もsedコマンドを利用します。
書式:「sed -n '/開始のタグ/,/終了のタグ/p’ 対象のファイル名

# sample.html の一部
<body>
<table>
  <tr><th></th><th>列-A</th><th>列-B</th></tr>
  <tr><td>行-1</td><td>A-1</td><td>B-1</td></tr>
  <tr><td>行-2</td><td>A-2</td><td>B-2</td></tr>
  <tr><td>行-3</td><td>A-3</td><td>B-3</td></tr>
</table>
</body>

# tableで囲まれている箇所のみ表示する
$ sed -n '/<table>/,/<\/table>/p' sample.html
<table>
<tr><th></th><th>列-A</th><th>列-B</th></tr>
<tr><td>行-1</td><td>A-1</td><td>B-1</td></tr>
<tr><td>行-2</td><td>A-2</td><td>B-2</td></tr>
<tr><td>行-3</td><td>A-3</td><td>B-3</td></tr>
</table>

 

 

スポンサーリンク