2016-12-27 1 views
2

약 4000 * .txt 및 * .txt.bak 파일이있는 폴더가 있습니다.정규식을 사용하여 정확한 확장명을 가진 파일 찾기

linux find-command를 실행하여 * .txt.bak 파일이 아닌 모든 * .txt 파일을 찾으려고합니다. 그렇게 할 올바른 정규식은 무엇입니까?

find . -regex ".*txt" 

이 당신이 찾기에서 정규식을 필요로하지 않는 매우 간단합니다 모든

+1

정말이에요? 나는 방금'find를 시도했다. -regex ". * txt"'내'.txt.bak' 파일을 찾지 못했습니다. – Dekel

+2

왜'-regex'를 사용합니까? '찾는다. -name '* .txt''는'.txt.bak'을 찾지 못하고 완전히 POSIX를 준수합니다. –

+0

네 말이 맞다. 나는 사물을 과장하고 있었다. -name '* .txt'가 의도 한대로 작동합니다. – octavio

답변

2

에서 어떤 파일을 찾을 것입니다 박 파일

find . -regex ".*txt$/" 

을 포함하여 모든 파일을 찾을 수 있습니다. 간단히 사용 find $pwd -name "*.txt" 이것은 자동으로 요구 사항과 일치합니다. 파일 이름과 확장명 만 추출하기 위해 더 자세한 정보를 제공하고 단순화하려면 다음과 같이하십시오.

for i in $(find $pwd -name "*.txt") 
do 
    flnm=$(basename $i) 
    extnm="${flnm##*.}" 
    flnmnoext="${flnm%.*}" 
    echo "FileName is : " $flnm " Extension is : " $extnm " File Name without extension is $flnmnoext" 
done 

이것은 여러 스레드로 설명되었습니다. 희망이 도움이됩니다.

관련 문제