使用 sed 只需要一个命令:
sed -s -i 's/set_\([A-Za-z0-9_]*\)/\1 = /g' ` find . -name '*.cs' | xargs grep -l set_ `
解释如下:
` find . -name '*.cs' | xargs grep -l set_ ` : 找到符合条件的文件,作为 sed 的输入文件
sed -s 表示将输入的文件一个一个地处理,而不是当作一个批量处理
-i 表示直接替换文件
set_[A-Za-z0-9_]* 用正则表达式找到要替换的内容,将 [A-Za-z0-9_]* 用 \(, \) 包起来,就是正则表达式中的分组
最后替换成 \1 = , \1 表示正则表达式中的第一个分组匹配到的内容,如果要取第2个分组则用 \2
在windows 下装一个 cygwin 就可以操作了