Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 什么';在代码库中搜索特定单词的最佳工具或方法是什么?_Search_Command Line_Replace - Fatal编程技术网

Search 什么';在代码库中搜索特定单词的最佳工具或方法是什么?

Search 什么';在代码库中搜索特定单词的最佳工具或方法是什么?,search,command-line,replace,Search,Command Line,Replace,您建议使用什么工具或方法来查找和替换代码中的值?如果代码在Linux/Unix上,那么find和grep是最好的方法吗?我假设您打算重命名一个变量 这取决于代码体是什么。对于C#,Visual Studio的重命名工具非常好。请记住,为了使其可靠地工作,您需要重命名以与编译器/解释器协同工作,因此您可以确保只在正确的范围内进行更改 如果这是一个非常简单的查找/替换,那么低矮的记事本肯定能做得很好吗?查找和grep不会生成索引,因此它们总是比其他替代方法慢。也就是说,如果您的代码库只有几十个文件,

您建议使用什么工具或方法来查找和替换代码中的值?如果代码在Linux/Unix上,那么find和grep是最好的方法吗?

我假设您打算重命名一个变量

这取决于代码体是什么。对于C#,Visual Studio的重命名工具非常好。请记住,为了使其可靠地工作,您需要重命名以与编译器/解释器协同工作,因此您可以确保只在正确的范围内进行更改


如果这是一个非常简单的查找/替换,那么低矮的记事本肯定能做得很好吗?

查找和grep不会生成索引,因此它们总是比其他替代方法慢。也就是说,如果您的代码库只有几十个文件,它们就可以正常工作

Eclipse有一个很好的文件搜索功能(Ctrl+H)。如果您有合适的插件,它还可以考虑语言语义(当然,Java是开箱即用的)。唯一需要注意的是,当您第一次搜索某个文件集时,它可能会有点慢。

看看它,它是为搜索大型代码库而设计的

要替换,请查看Perl的-i、-p和-e标志。你可以这样做:

$ perl -i -p -e's/\bthisword\b/thatword/g' $(find . -name *.html)

要在树中的所有.html文件中用该词替换该词的所有实例。

查找
grep
将找到您要查找的词,但要替换它,您需要使用
sed
awk
或您最喜欢的流编辑过滤器

groovy
python
perl
都将执行搜索/替换操作-使用您最喜欢的或选择一个进行学习


对于基于代码的操作,我将使用
find | sed
进行简单操作(
cygwin
是您的朋友),并且IDE的搜索/替换为regex支持进行更复杂的操作。Eclipse、Idea、Visual Studio甚至SQL Server Manglement Studio都具有强大的搜索/替换功能。坏消息是,它们并非都使用相同的正则表达式语法。

看看PowerGrep。。。它到处都有广告。我开始想要它,即使我真的不需要它-


PD:他们有15天的免费演示,所以如果这是一项小工作,你可以使用演示。

这只是安迪上述公认答案的一个提示。由于声誉不好,无法将此作为评论添加

使用!当你很难摆脱束缚时,作为一个分离者


e、 g$perl-i-p-e的\b这个词\b!那个词!g'$(find.-name*.html)

您也可以在替换示例中为find部分使用ack:$perl-i-p-e的/\b thisword\b/thatword/g'$(ack-f--html)