我有一个文件
<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
(扩展正则表达式)用于避免转义括号。