带有正则表达式和固定部分的 Sed

带有正则表达式和固定部分的 Sed

我有一个文件

<vcell i="2" v="2" s="0" m="0"/>
<cell i="3" v="3187"/>
<cell i="4" v="1"/>
<cell i="5" v="17"/>
<cell i="6" v="0"/>
<cell i="7" v="2"/>
<cell i="8" v="17"/>
<cell i="9" v="0 / 13"/>

我需要更换

<vcelli2 v="2" s="0" m="0"/>
<celli3 v="3187"/>
<celli4 v="1"/>
<celli5 v="17"/>
<celli6 v="0"/>
<celli7 v="2"/>
<celli8 v="17"/>
<celli9 v="0 / 13"/>

我可以用 sed 和正则表达式来做到这一点吗?

答案1

是的,可以使用 sed 命令来完成。

请记住在对文件进行任何更改之前先备份该文件。确认结果正确后可以删除备份或保留以供以后使用。

至于sed命令,类似

sed -i.backup -E 's/ i="([0-9]*)"/i\1/g' file

应该可以工作(请注意,这将自动备份原始文件,backup如果手动完成,则删除该部分)。

-i标志(并非在所有类型的 中都可用sed)代表就地(即保存回原始文件;保留带有扩展名的原始文件的副本.backup),并且-E(扩展正则表达式)用于避免转义括号。

相关内容