在linux / osx上搜索并替换整个项目

时间:2009-12-23 09:50:33

标签: replace

如何为每个扩展名为.cc和.h的文件替换另一个模式?不确定我是否需要阻止它进入.svn目录。

第一次尝试

#!/bin/bash
for file in `find . -name '*.cc' -or -name  '*.h'`; do \
    sed -e s/$1/$2/g -i temp $file
done

2 个答案:

答案 0 :(得分:2)

如果您的项目是在linux平台下管理的,那么您可以在bash中执行这样的操作:

for file in `find . -name '*.cpp' -or -name  '*.h'`; do \
     cat $file | sed s/$1/$2/g > tmp
     mv tmp $file
done

每个svn文件都有'* -base'扩展名,所以它们都将保持不变。此脚本仅影响* h和* cc文件。

答案 1 :(得分:0)

例如,您可以通过Eclipse项目资源管理器中的某些文件使用正则表达式进行搜索和替换。我确信有很多工具可以做到这一点,但首先想到Elipse。

要执行此操作,您需要调用“搜索”对话框,将模式放在搜索字段中,使用通配符指定扩展名并按“替换”,