sed -n 's;</\?td>;;gp' scoretable.html | \
sed -e 's;<td class="center">;;' \
-e 's;<.*>;;'
;
区切り文字としてではなく使用していることに注意して/
ください。少し読みやすくなっています。Sedは、後に置い's
た文字を区切り文字として使用します。
さて、説明です。最初の行:
-n
出力を抑制しますがp
、コマンドの最後にあるは、パターンに一致するすべての行を具体的に印刷するようにsedに指示します。<td>
これにより、タグでラップされた行のみが取得されます。同時に、私は一致するものを見つけて、</\?td>
それを何も置き換えていません。/\?
は/
、表示または1回だけ表示してはならないため、開始タグと終了タグの両方に一致します。最後のg
、つまりグローバルは、パターンが1行で初めて成功した後、パターンの一致を停止しないことを意味します。それがなければg
、オープニングタグを置き換えるだけです。
これからの出力は、2行目で再びsedにパイプされます。
-e
実行する編集コマンドがあることを指定するだけです。1つのコマンドを実行しているだけの場合はそれが暗示されていますが、ここでは2つ実行しています(次のコマンドは3行目にあります)。
これにより、が削除<td class="center">
され、次の行で他のタグ(この場合は<br>
タグ)が削除されます。
最後のコマンドは、1行に最大で1つのタグしかないことが確実な場合にのみ実行できます。そうし.*
ないと、貪欲になりすぎて一致しすぎるため、次のようになります。
<td class="center">24 </ br>
行全体に一致し、すべてを削除します。