更改多个文件中的字符串的脚本

时间:2012-08-14 12:34:52

标签: java replace

我想从包含Java文件的当前文件夹中替换:

ColorTee.testh = new TestH(A,"JavaFileName".class); 
ColorTee.testh.addFile(C,"/folder1/folder2/folder3/file","myFile")

with:

ColorTee.testh = new TestH(value1,A,"JavaFileName".class); 
ColorTee.testh.addFile(C,"/folder3/file","myFile")

对于第二行,我只想删除/folder1/folder2

3 个答案:

答案 0 :(得分:0)

你应该这样做:

String path = "/folder1/folder2/folder3/file";
ColorTee.testh.addFile(C,path,"myFile")
ColorTee.testh.addFile(C,path.replace("/folder1/folder2", ""),"myFile");

答案 1 :(得分:0)

您可以使用Perl脚本。例如这是我在zsh中的一个:

change () {
        from=$1 
        shift
        to=$1 
        shift
        for file in $*
        do
                perl -i.bak -p -e "s{$from}{$to}g;" $file
                echo "Changing $from to $to in $file"
        done
}

并且利用shell文件名globbing等,例如

$ change From To **/*.java

另一种方法是不更改方法调用,而是更改方法的工作方式,并删除初始路径组件。这不太好,而且强烈依赖于实际的实现。

答案 2 :(得分:0)