[search] 인덱싱없이 파일 내에서 문자열을 검색하는 도구 [닫기]

믿을 수 없을 정도로 오래된 레거시 응용 프로그램에서 일부 연결 문자열을 변경해야하며, 그것을 만든 프로그래머는 전체 응용 프로그램을 연결 문자열로 모든 장소에 석고로 칠하는 것이 좋습니다.

Visual Studio의 “현재 프로젝트”검색은 엄청나게 느리고 Windows 검색을 신뢰하지 않습니다.

그렇다면 색인없는 무료 무료 텍스트 검색 도구는 무엇입니까? 폴더와 하위 폴더 안에 원하는 문자열이 포함 된 파일이있는 목록을 반환하면됩니다.

Windows 2003 Server를 실행하고 있습니다.



답변

원래 답변

Windows Grep 이이 작업을 잘 수행합니다.

편집 : Windows Grep은 더 이상 개발자가 유지 관리하거나 사용할 수 없습니다. 대체 다운로드 링크는 다음과 같습니다. Windows Grep-alternate

현재 답변

Visual Studio Code 는 파일 전체에서 뛰어난 검색 및 교체 기능을 제공합니다. 매우 빠르며 교체 전에 정규식 및 라이브 미리보기를 지원합니다.

여기에 이미지 설명을 입력하십시오


답변

Notepad ++Find-In-Files 대화 상자 의 팬입니다 . 보너스 : 무료입니다.

여기에 이미지 설명을 입력하십시오


답변

findstr.exe파일 내에서 검색 할 수 있는 Windows 기본 제공 프로그램도 있습니다.

>findstr /s "provider=sqloledb" *.cs


답변

나는 AstroGrep을 좋아합니다. 결과가 목록에 표시됩니다. 행을 클릭하면 적중을 강조하는 미리보기로 전체 라인이 표시됩니다. 그것은 매우 빠르고, 마른 것처럼 보이고 무료입니다. Windows 7, 8, 10 및 Windows Server 2008 R2에서 테스트되었습니다. 정규식을 허용합니다.

최신 AstroGrep 스크린 샷

AstroGrep은 Microsoft Windows GUI 파일 검색 (grep) 유틸리티입니다. 이 기능에는 정규식, 다양한 인쇄 옵션, 가장 최근에 사용한 경로 저장 및 “컨텍스트”기능이있어 소스 코드를 보는 데 매우 유용합니다.

참조 : AstroGrep


답변

폴더에서 Visual Studio의 검색은 내가 찾은 것 중 가장 빠릅니다.

지능적으로 텍스트 (이진이 아닌) 파일 만 검색하고 다른 도구와 달리 동일한 폴더의 후속 검색은 매우 빠릅니다 (텍스트 파일이 Windows 디스크 캐시에 적합 할 수 있음).

SSD가없는 일반 하드 드라이브의 VS2010은 26k 파일, 소스 코드 및 바이너리가 혼합 된 20GB 폴더를 검색하는 데 1 분이 걸립니다. 15k 파일이 검색됩니다. 이진 파일로 인해 나머지는 건너 뛸 수 있습니다. 동일한 폴더의 후속 검색은 몇 초 정도입니다 (캐시에서 항목이 제거 될 때까지).

같은 폴더에서 찾은 다음으로 가장 가까운 것은 grepWin입니다. 약 3 분 2000KB보다 큰 파일을 제외했습니다 (기본값). “이진 파일 포함”설정은 검색 속도를 높이는 데 아무런 영향을 미치지 않는 것 같습니다. 이진 파일이 여전히 닿아있는 것처럼 보이지만 (버그?) 검색 결과에 표시되지 않습니다. 후속 검색은 모두 동일한 3 분이 소요되며 하드 드라이브 캐시를 이용할 수 없습니다. 200k보다 작은 파일로 제한하면 초기 검색은 2.5 분이며 후속 검색은 캐시에서 약 VS 정도의 속도로 몇 초 정도 걸립니다.

Ransack 요원과 FileSeek는 거대한 멀티 기가 바이트 이진 파일을 포함하여 모든 것을 검색하기 때문에 약 20 분 정도 폴더에서 매우 느립니다. 리소스 모니터에 따라 초당 약 10-20MB로 검색합니다.

업데이트 : Agent Ransack은 특정 크기의 파일을 검색하도록 설정할 수 있으며 <200KB 컷오프를 사용하면 새로 검색하는 데 1 분 15 분, 후속 검색에 5 분이 걸립니다. grepWin보다 빠르며 전반적으로 VS만큼 빠릅니다. 여러 검색을 탭으로 유지하고 최근에 검색 한 VS 폴더 목록을 오염시키지 않고 VS가 원하지 않는 바이너리 검색 기능을 유지하려는 경우 실제로 매우 좋습니다. 상담원 Ransack은 탐색기 상황에 맞는 메뉴 항목도 만들므로 폴더에서 쉽게 시작할 수 있습니다. grepWin과 동일하지만 UI가 좋고 빠릅니다.

나의 새로운 검색 설정은 내용을위한 Agent Ransack과 파일 이름을위한 모든 것 (굉장한 도구, 즉각적인 결과!)입니다.


답변

타사 도구를 설치하지 않으려면 Microsoft Sysinternals에서 STRINGS.EXE다운로드 하고 다음과 같이 절차를 수행하십시오.

@echo off
if '%1' == '' goto NOPARAM
if '%2' == '' goto NOPARAM
if not exist %1 goto NOFOLDER

echo ------------------------------------------
echo - %1 : folder
echo - %2 : string to be searched in the folder
echo - PLEASE WAIT FOR THE RESULTS ...
strings -s %1\* | findstr /i %2 > grep.txt
notepad.exe grep.txt

goto END

:NOPARAM rem - input command not correct
echo ====================================
echo Usage of GREP.CMD:
echo   Grep "SearchFolder" SearchString
echo Please specify all parameters
echo ====================================
goto END

:NOFOLDER
echo Folder %1 does not exist
goto END

:END rem - exit


답변