부분 이름을 기반으로 여러 파일에서 특정 문자열을 하나씩 검색하는 방법

부분 이름을 기반으로 여러 파일에서 특정 문자열을 하나씩 검색하는 방법

내 문제를 설명하기 위해 최선을 다할 것이지만 영어를 용서해주십시오.

내가 하고 싶은 일은 간단해 보이지만 지금까지 찾은 모든 솔루션이 작동하지 않습니다.

이름의 일부를 기반으로 디렉토리의 각 파일을 "면밀히 조사"한 다음 발견된 각 파일에 특정 문자열이 포함되어 있는지 확인하고 포함된 경우 1 또는 0을 반환하는 쉘 스크립트를 만들고 싶습니다.

지금까지 시도한 코드는 다음과 같습니다. 여기에 이미지 설명을 입력하세요.

괜찮아요 #메모

답변1

그러면 *$name*이름이 일치하는 파일이 출력되고 다음이 포함됩니다 pattern.

shopt -s globstar # needed to be able to use **
grep -l "pattern" **/*"$name"*

원하는 경우 나중에 globstar를 다시 비활성화할 수 있습니다.

shopt -u globstar

대체 용도 find:

find . -name "*$name*" -exec grep -l "pattern" {} \;

관련 정보