特定のディレクトリに約150個のHTMLファイルがあり、変更を加えたいと思います。一部のアンカータグには、次の行に沿ってhrefがありますindex.php?page=something
。それらすべてをに変更してほしいsomething.html
。単純な正規表現、単純なスクリプト。しかし、私はそれを正しく理解できないようです。誰かが私が間違っていることに重きを置くことができますか?
出力の前後のサンプルhtml:
<!-- Before -->
<ul>
<li><a href="#">Apple</a></li>
<li><a href="index.php?page=dandelion">Dandelion</a></li>
<li><a href="index.php?page=elephant">Elephant</a></li>
<li><a href="index.php?page=resonate">Resonate</a></li>
</ul>
<!-- After -->
<ul>
<li><a href="#">Apple</a></li>
<li><a href="dandelion.html">Dandelion</a></li>
<li><a href="elephant.html">Elephant</a></li>
<li><a href="resonate.html">Resonate</a></li>
</ul>
スクリプトファイル:
#! /bin/bash
for f in *.html
do
sed s/\"index\.php?page=\([.]*\)\"/\1\.html/g < $f >! $f
done