코드베이스에서 특정 단어를 검색하는 가장 좋은 도구 나 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/231189

  •  04-07-2019
  •  | 
  •  

문제

코드에서 값을 찾고 교체하는 데 어떤 도구 또는 방법을 권장합니까? 코드가 Linux/Unix에있는 경우 가장 좋은 방법을 찾아서 Grep을 찾으십니까?

도움이 되었습니까?

해결책

보세요 ACK, 빅 코드베이스를 검색하도록 설계되었습니다.

교체하려면 Perl의 -i, -p 및 -e 플래그를보십시오. 당신은 다음과 같은 일을 할 수 있습니다.

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

트리의 모든 .html 파일 에서이 단어의 모든 인스턴스를 해당 단어로 바꾸려면.

다른 팁

변수의 이름을 바꾸려고한다고 가정합니다.

코드 본문이 무엇인지에 따라 다릅니다. C#의 경우 Visual Studio의 이름 변경 도구가 매우 좋습니다. 안정적으로 작동하려면 컴파일러/통역사와 함께 작업하려면 이름 변경이 필요하므로 올바른 범위 만 변경할 수 있습니다.

매우 간단한 찾기/교체라면 분명히 낮은 메모장이 OK 작업을 수행 할 것입니까?

find 그리고 grep 찾고있는 단어를 찾을 수 있지만 대체하려면 사용해야합니다. sed, awk 또는 좋아하는 스트림 편집 필터.

groovy, python, perl 모두 검색/교체 작업을 수행합니다. 좋아하는 작업을 사용하거나 배우거나 배우십시오.

코드 기반에서의 작업을 위해 사용하겠습니다 find | sed 간단한 작업의 경우 (cygwin 당신의 친구)와 IDE의 검색/교체는보다 복잡한 운영에 대한 REGEX 지원으로 대체합니다. Eclipse, Idea, Visual Studio 및 SQL Server Manglement Studio에는 강력한 검색/교체 기능이 있습니다. 나쁜 소식은 그들 모두가 동일한 Regex 구문을 사용하는 것은 아니라는 것입니다.

PowerGrep를 살펴보십시오 ... 모든 곳에 광고가 있습니다. 나는 정말로 필요하지 않을 때도 그것을 원하기 시작했다.

PD : 15 일 무료 데모가 있으므로 작은 작업이라면 데모 만 사용할 수 있습니다.

이것은 앤디의 위의 인정 된 답변에 대한 팁 일뿐입니다. 평판이 적기 때문에 이것을 의견으로 추가하지 않을 수 있습니다.

사용 ! 끈을 피하는 힘든 시간이있을 때 분리기로

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

Find and Grep은 무두질을 구축하지 않으므로 대안보다 항상 느리게 진행됩니다. 즉, 코드베이스가 수십 개의 파일이라면 잘 작동합니다.

Eclipse에는 멋진 파일 검색 기능 (Ctrl+H)이 있습니다. 올바른 플러그인이 있으면 언어 의미론을 고려할 수 있습니다 (물론 Java는 상자 밖으로 작동합니다). 유일한 경고는 특정 파일 세트에서 처음으로 검색 할 때 약간 느리게 될 수 있다는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top