Windows 명령 행에서 특정 패턴의 파일 이름을 찾으십니까?


11

디렉토리 및 서브 디렉토리에서 특정 패턴의 파일을 찾으려고합니다. 나는 시도했다 :

C:\test\workspace>dir *.*.r[0-9]* /s /b
File Not Found

같은 파일을 찾기 위해

abc.txt.r12222
tjy.java.r9994

문자 r 뒤에 숫자가 추가되는 경우 SVN이 수행합니다.

내가 무엇을 잘못하고 있지?


3
SU에 오신 것을 환영합니다! 스택 교환 사이트에서 답변이 도움이되었을 때 사람들에게 감사를 표하는 방법은 문제를 해결 한 경우 답변을 찬성하고 답변 왼쪽에있는 확인 표시를 클릭하여 수락하는 것입니다. 나는 당신이 당신의 질문에 대해 당신이받은 답변 중 어느 것도 받아들이지 않은 것처럼 보이기 때문에 말하고 있습니다.
terdon

답변:


10

방금 며칠 전에 Stack Overflow에서 이것에 대답했습니다. /programming/15648679/find-text-string-or-part-of-text-with-dot-in-grepwin/15648872#15648872

귀하의 경우에는 다음과 같습니다

dir * /s/b | findstr \.r[0-9]+$

최신 정보

다른 예 ".r [0-9] * $"중 하나에서 *는 * 수량자가 0 이상을 의미하므로 'r'로 끝나는 레코드도 찾습니다.


안녕하세요 cpattersonv1-dir * / s / b 응답 주셔서 감사합니다 | findstr \ .r [0-9] * $ 작품
chz

findstr은 하나 이상의 기호 '+'를 인식하지 못하는 것 같습니다
Scott Chu

@ScottChu는 예를 들어 새로운 질문을 시작합니다. (5 년 전 답변 함)
AbsoluteƵERØ

0

grepWindows로 포팅되었으며 정규 표현식을 사용하여 줄을 일치시킬 수있는 UNIX 계열 시스템의 유틸리티를 사용하여 제안합니다 .

grepMinGW의 MSYS 패키지에 포함되어 있으며 설치 프로그램은 여기 에서 찾을 수 있습니다 . (MSYS 만 설치)

그런 다음 PATH 변수에 MSYS 도구를 추가해야합니다. MSYS의 dafeult 디렉토리는 C:\MinGW\msys\1.0\bin

마지막 으로이 명령으로 봉사 할 수 있습니다.

ls -a | grep ^.+\..+\.r[0-9]+$

... ":" ls -a(숨겨진 파일을 포함한 파일 목록) 에서 출력을 받아서 .r [0-9] * (각 별표로 표시된 하나 이상의 문자)와 grep같은 행을 일치 시킵니다. "


안녕 gronostaj 응답 주셔서 감사합니다; 시도$ ls -R | grep -H ^.*[0-9]$ (standard input):res.jar.r469621 (standard input):res.jar.r464460 (standard input):test.jar.r46521 (standard input):test.jar.r46970
chz

안녕, 난 여전히 파일 이름의 전체 경로 이름을 얻을 수 없습니다; 어떻게합니까? 예 : c:\pager\test.jar.r46521(표준 입력)과 반대 : test.jar.r46521
chz

LS | grep은 dir과 동일합니다 | Windows에서 findstr.
AbsoluteƵERØ

0

당신은 이것을 시도 할 수 있습니다 :

dir /a| findstr .r[0-9]*$

도움이 필요하면을 입력하십시오 findstr /?.


안녕하세요 mfm4aa 답변 주셔서 감사합니다-작동하지 않는 것 같습니다; 나는 모든 조합을 시도했지만 아무도 개미 목록에 답변을 제공하지 않습니다 : 예를 들어 인라인C:\Temp>findstr /S /B [0-9] . C:\Temp>findstr /S /B r[0-9]$ . C:\Temp>findstr /S /B $.*r[0-9]$ C:\Temp>findstr /S /B $.*r*$ C:\Temp>findstr /S /B $.*r..*$ C:\Temp>findstr /S /B $.*r\..*$ C:\Temp>findstr /S /B /R $.*r\..*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$ C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" C:\Temp>findstr /S /B /R "$.*\..r[0-9]*$" . C:\Temp>findstr /S /B /R "$.*\..r[0-9]$" . C:\Temp>findstr /S /B /R "$.*[0-9]*" . C:\Temp>findstr /S /B /R "$*[0-9]*" .
chz

다음을 시도해보십시오 :C:\Temp>dir /aa| findstr .r[0-9]*$
Endoro

안녕하세요 mfm 감사합니다-여전히 찾을 수 없습니다C:\Temp>dir /aa | findstr .r[0-9]*$ File Not Found
chz

:) 단순히 입력하십시오 dir /aa| findstr .r[0-9]*$. 그것은 여기서 작동합니다 ...
Endoro

안녕 Endoro 응답 주셔서 감사합니다. 작동하지 않습니다-파일을 찾을 수 없습니다
chz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.