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


0

최선을 다해 문제를 설명하려고 노력하지만 영어를 용서해주십시오 ..

내가하려고하는 일은 나에게 충분히 단순 해 보였지만 지금까지 찾은 모든 솔루션이 작동하지 않습니다.

부분 이름을 기반으로 디렉토리의 모든 파일을 "검토"하는 쉘 스크립트를 작성하고 찾은 각 파일에 특정 문자열이 포함되어 있는지 확인한 다음 1 또는 0을 리턴하십시오.

내가 지금까지 시도한 코드 : 여기에 이미지 설명을 입력하십시오

#note를 신경 쓰지 마십시오


find /home/it21704/labs_team/ -type f -name "*somefilename*" -exec grep -c 'somestring' {} + 파일에서 찾은 문자열의 개수를 반환합니다. 또한 스크린 샷을 게시하지 말고 목표를 달성하려고했던 코드를 붙여 넣으십시오.
Valentin Bajrami

모든 파일에서 부분 문자열을 grep하고 싶습니다 ... 맞습니까?
msp9011

맞습니다 yes @ msp9011
otimalakiatheleis

'$name'리터럴을 출력 $name합니다. "$name"이 경우 더 잘 사용하십시오 .
pLumo

답변:


0

이름이 일치 *$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" {} \;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.