我有几块 html 代码,见下文,在我需要更改的 html 页面中
Assurez-vous de bien recevoir tous nos messages en ajoutant [email protected] à votre carnet d'adresses.<br />
Si vous avez des difficultés pour visualiser ce message, rendez-vous sur
到
[{headerbebeco}]
或者
http://www.bebeco.fr
到
http://mm.eulerian.net/dynclick/bebeco/?eml-publisher=bebeco&eml-name=deme_faible&eemail={email}&eurl=https://www.bebeco.fr/?utm_source=ANIM&utm_medium=Targeting&utm_campaign=deme_faible&utm_term=CCCC_seg_men&utm_content=website
一种可能的做法是用记事本之类的东西手动更改它的每个部分。
正如你可以想象的那样,其中有很多绊脚石、错误和麻烦。
另一种可能是使用 sed 或 awk 等工具将其自动化。
我想出了这两行。
awk -v old="Assurez-vous de bien recevoir tous nos messages en ajoutant [email protected] a votre carnet d'adresses.<br />
Si vous avez des difficultés pour visualiser ce message, rendez-vous sur " -v new="[{headerbebeco}]" 's=index($0,old){$0=substr($0,1,s-1) new substr($0,s+length(old))}1' test_bebeco_v2.html > tmp && mv tmp test_bebeco_v2.html
sed -i 's~Assurez-vous de bien recevoir tous nos messages en ajoutant [email protected] a votre carnet d'adresses.<br /> Si vous avez des difficultés pour visualiser ce message, rendez-vous sur~[{headerbebeco}]~g' test_Sofinco_v2.html
但是这些行,无论是在 awk 还是 sed 中,都不是令人满意的,例如它没有做我想做的替换。
我想知道是否有工具可以通过编程来做到这一点。 Bash 似乎受到了损害,但如果您在 python 或 bash 或只是一个程序中有其他解决方案,我愿意倾听。
干杯。
更新:下面的示例
请确保收到所有消息[电子邮件受保护]votre carnet d'addresses。
如果您遇到了困难,请通过可视化消息,与您会合
答案1
Sed
或者awk
是一行编辑器。您必须将两行合并为一行或使用选项(存在于GNU sed
版本 > 4.2.1 中)
sed -zi 's~Assurez-vous de bien recevoir tous nos messages en ajoutant bebeco@cab05\.net a votre carnet d'\''adresses.<br />\n Si vous avez des difficult\\és pour visualiser ce message, rendez-vous sur~[{headerbebeco}]~g' test_Sofinco_v2.html
但在大多数情况下,您并没有将所有字符串都作为模式,有时几个单词就足够了:
sed -i '/^Assurez-vous de bien/{N; /rendez-vous sur$/s/.*/[{headerbebeco}]/}' test_Sofinco_v2.html
或者
sed -i '/^Assurez-vous de bien/d;/Si vous avez des difficultés pour visualiser ce message, rendez-vous sur/s//[{headerbebeco}]/}' test_Sofinco_v2.html