HTML出力を修正しています。
<td nowrap align="right">4683</td>
ドキュメントでこのパターンのすべての項目を置き換えたいと思います。ここで、4683は所与の数の様々な長さであり得る。
したがって、この線は次のようになります。
<td nowrap align="right"><a href="4683.html">link</a></td>
これを探していると思います。
sed -i 's/align="right">/([0-9]*)/<\/td>/align="right"><a href="4683.html">link<\/a><\/td>/g' index.html
私は正規表現が引用、置換、または正しく構成されていない可能性があることを理解しています。
答え1
どうですか?
sed 's_^\([^>]\+>\)\([[:digit:]]\+\)_\1<a href="\2.html">link</a>_' file.txt
入力にある形式ではなく、代替パターン形式を使用してい
_
ます。sed
/
/
^\([^>]\+>\)
最も多くの(含まれている)文字を見つけて>
グループに入れます。\([[:digit:]]\+\)
記載されている番号を見つけて、後で使用できるようにグループに入れます。置換パターンは、第1の一致グループが
\1<a href="\2.html">link</a>
どこにあり、第2の一致グループがどこにあるかである。\1
\2
例:
$ sed 's_^\([^>]\+>\)\([[:digit:]]\+\)_\1<a href="\2.html">link</a>_'<<<'<td nowrap align="right">4683</td>' <td nowrap align="right"><a href="4683.html">link</a></td>
行の他の場所に数字がない場合は、単に次のものを使用できます。
sed 's_[[:digit:]]\+_<a href="&.html">link</a>_' file.txt
例:
$ sed 's_[[:digit:]]\+_<a href="&.html">link</a>_'<<<'<td nowrap align="right">4683</td>'
<td nowrap align="right"><a href="4683.html">link</a></td>
答え2
この試み、
sed -ri 's/([0-9]+)/<a href=\"&.html\">link<\/a>/g' index.html