在Notepad ++中使用序列进行高级质量替换

时间:2014-06-13 22:11:36

标签: regex vim notepad++

所以我有116个html文件,所有文件都有以下代码:

档案1.html:

....bla bla bla....
<script>var ppgnum =0;</script>
... code code code...

文件2.html:

....bla bla bla....
<script>var ppgnum =0;</script>
... code code code...

依旧......

文件116.html:

....bla bla bla....
<script>var ppgnum =0;</script>
... code code code...

寻找解决方案来获得类似的内容:

结果:

档案1.html

....bla bla bla....
<script>var ppgnum =1;</script>
... code code code...

文件2.html:

....bla bla bla....
<script>var ppgnum =2;</script>
... code code code...

依旧......

文件116.html:

....bla bla bla....
<script>var ppgnum =116;</script>
... code code code...

非常感谢你!

2 个答案:

答案 0 :(得分:0)

1。使用vim


在vim中,将所有文件添加为参数(例如,以gvim file*.html:args file*.html开头):

:argdo let @n=substitute(expand('%'),'\v^.{-}(\d+).*$', '=\1;','g') | s/var ppgnum \zs=0;/\=@n/

现在,将它们全部保存并完成(:wqa

2。在命令行


或者使用sed:

for filename in file*.html
do 
     sed -i "s/var ppgnum =0;/var ppgnum =${filename//[^0-9]/};/" "$filename"
done

见后者 Live On Coliru

答案 1 :(得分:0)

凭借 sehe 的想法,我更改了代码并在excel的帮助下执行了cmd上的命令

sed -i "s/var ppgnum =0;/var ppgnum =1;/" "1.html"

......................................

sed -i "s/var ppgnum =0;/var ppgnum =116;/" "116.html"

只需5分钟即可获得结果:-P Excel是最好的;)