0

我在“模型”文件夹中有一组 .xml 文件,其中包含以下内容:

   <property name="manager"
          type="string"
          column="manager" />
    <property name="age"
          type="integer"
          column="age" />

还有一个 java 映射文件,其中包含以下内容:

class ClassName()
{
    int age;
    int getAge();
    setAge(int age); 
}

我基本上需要用 long 删除所有出现的 int 和 Integer。

有没有一种类似unix命令或脚本的方法可以做到这一点?我正在使用 RHEL5。

4

1 回答 1

2
find . -type f \( -name '*.xml' -o -name '*.java' \) \
  -exec sed -ri.back 's/\<int(eger)?\>/long/g' {} +

或者,如果您只想处理包含字符串的文件:

find . -type f \( -name '*.xml' -o -name '*.java' \) \
  -exec grep -ilZE '\<int(eger)\>' {} + |
  xargs -r0 sed -ri.back 's/\<int(eger)?\>/long/g'

请注意,上述sed,xargsgrep命令使用非标准扩展,但可以与包括 RHEL5 在内的 Linux 发行版上的 GNU 变体一起使用。

.backafter是保存原始文件的-i备份副本,如果不需要,可以省略。

于 2013-06-12T21:43:39.400 回答