2012-06-13 3 views
1

은 문자열 예를 들어 찾기 기능 DOS

의 컬렉션 중 하나를 가진 파일의 이름을 폴더를 검색하고 반환 찾기 기능을 사용하여 폴더를 검색하고 함께 돌아가 파일을 할 수 있나요 텍스트 'Michael', 'Alan', 'Ben'등

+0

왜 닫을까요? 이것은 합당한 프로그래밍 질문입니까? dos 쉘은 스크립팅 언어입니다. –

답변

2

DOS 및 Windows 명령어 Findstr을 사용할 수 있습니다.

FINDSTR [options] [/F:file] [/C:string] [/G:file] 
     [/D:DirList] [/A:color] [/OFF[LINE]] [string(s)] [pathname(s)] 

Literal search 

Search a text file mydir\*.* that contains the following 

The quick brown fox The really ^brown^ fox 

A literal search will ignore any special meaning for the search characters: 

FINDSTR /C:"^brown" mydir\*.* 
+0

그러면 파일에 '여우'또는 '개'가 포함되어 있는지 확인하는 방법은 무엇입니까? – Michaelb88

+0

정규 표현식을 사용합니다 : http://stackoverflow.com/questions/2613826/regular-expressions-in-findstr –

+0

@PreetSangha - 아니요, FINDSTR은 정규 표현식을 지원하지 않습니다. – dbenham

0

나는 DOS가 FINDSTR 있다고 생각하지 않았지만이있는 경우에, 당신은 내용 "여우"또는 "개"

findstr /ml "fox dog" "myDir\*" 
가 포함 된 파일의 이름을 찾으려면 다음 사용할 수 있습니다

또는

findstr /m /c:"fox" /c:"dog" 

하지만 서로 다른 길이의 여러 문자 검색 문자열을 가지고 검색이 대소 문자를 구분하면 일치해야 파일이 누락 될 수 있습니다 불쾌한 FINDSTR 버그가있다. "개"와 "여우"는 길이가 같으므로 문제가 없습니다. 하지만 실제 검색 문자열의 길이는 다를 수 있습니다.

findstr /mli "string1 string2IsLonger" "myDir\*" 

또는

findstr /mi /c:"string1" /c:"string2IsLonger" 

이 버그에 대한 자세한 정보를 원하시면 Why doesn't this FINDSTR example with multiple literal search strings find a match?를 참조하십시오 : 그 버그를 피할 수 있기 때문에 희망 당신은 대소 문자를 구분 검색을 멀리 얻을 수 있습니다. 또한 What are the undocumented features and limitations of the Windows FINDSTR command?을 읽는 것이 좋습니다.

검색 문자열에 공백이 포함 된 경우 /c 옵션을 사용해야합니다.

많은 검색 문자열을 검색해야한다면 /g:file 옵션을 사용하는 것이 좋습니다.

명령 줄에서 HELP FINDSTR 또는 FINDSTR /?을 입력하여 사용 가능한 전체 옵션 목록을 얻을 수 있습니다.