今天同事碰到一个问题,要我帮忙。
具体需求是这样的,有很多html 文件,需要替换文件中的某些内容。要写一个替换的工具进行批量替换。
1,查找所有标签,属性 class 中含有 bcms-btn 的,在class 属性前添加 fid="@@AID@@" 这个自定义的属性。
2,查找所有表情,属性 class 中含有 bcms-form-item的,在 class 前添加 fid="@@FID@@" 这个自定义属性。
一,以下是使用 perl -pi -e '$exp' 进行替换的命令
1,perl -pi -e 's|class="(.*/bcms-btn/b.*)"|fid="/@/@AID/@/@" class="$1"|g' `find inc/ -iname "*.html"`
2,perl -pi -e 's|class="(.*/bcms-form-item/b.*)"|fid="/@/@FID/@/@" class="$1"|g' `find inc/ -iname "*.html"`
当然,后面的find 也可以放在前面来,写成
find inc/ -iname "*.html" | xarge perl -pi -e '$exp'
这样的格式!!
二, 还可以使用 sed -i 's/aaa/bbb/g' $file
1,sed -i 's/class="/(.*/bcms-btn/b.*/)"/fid="/@/@AID/@/@" class="/1"/g' `find inc/ -iname "*.html"`
2,sed -i 's/class="/(.*/bcms-form-item/b.*/)"/fid="/@/@FID/@/@" class="/1"/g' `find inc/ -iname "*.html"`
同样,可以将 find 提前。