Sed:如何编辑替换后需要保留某些内容的行?
我有一个网站需要进行一些大规模编辑,我使用sed来执行大部分任务,但添加标题标签(Sed:如何编辑替换后需要保留某些内容的行?,sed,Sed,我有一个网站需要进行一些大规模编辑,我使用sed来执行大部分任务,但添加标题标签(,)非常棘手,我想不出一个方法来完成: 我可以保证的模式如下: <td class="content_subhd">Heading Name</td> 标题名 我想将其更改为: <td class="content_subhd"><h2>Heading Name</h2></td> 标题名 如果标题名称不是静态的,那么每个页面上的标题名
,
)非常棘手,我想不出一个方法来完成:
我可以保证的模式如下:
<td class="content_subhd">Heading Name</td>
标题名
我想将其更改为:
<td class="content_subhd"><h2>Heading Name</h2></td>
标题名
如果标题名称不是静态的,那么每个页面上的标题名称都是不同的,这就是为什么我可以使用substitute to due
有什么建议吗?这个怎么样
sed 's/\([^>]*>\)\(.*\)\(<.*\)/\1<h1>\2<\/h1>\3/'
1 2 3
sed's/\([^>]*>\)\(.*\)\(echo'Heading Name')\
sed-r的;()([^2个技巧需要:
使用模式分组\(…\)
并重新插入\1
使用冒号作为模式分隔符,而不是/
,以避免过度引用
结果:
sed 's:\(<td class="content_subhd">\)\(.*\)\(</td>\):\1<h2>\2</h2>\3:'
sed的:\(\)\(.\)\(\):\1\2\3:'
sed 's:\(<td class="content_subhd">\)\(.*\)\(</td>\):\1<h2>\2</h2>\3:'