특정 파일 내의 특정 텍스트를 반복적으로 검색하지만 특정 폴더에서만 검색합니다.

특정 파일 내의 특정 텍스트를 반복적으로 검색하지만 특정 폴더에서만 검색합니다.

많은 폴더와 파일이 포함된 중첩된 폴더 구조가 있습니다.

파일 내에서 패턴(예: "sampletext")을 검색하려면 어떻게 해야 합니까? 단, 파일 이름이 패턴과 일치하고(예: .txt 확장자를 가진 파일 내부만 검색) 마지막으로 포함하는 폴더 이름이 다른 패턴과 일치해야 하는 경우에만 해당됩니까? (예: "데이터").

나는 그것을 하기 위해 쉘 스크립트를 작성할 수 있다고 확신하지만, 나에게 새로운 것을 가르쳐 줄 영리한 한 줄의 스크립트가 존재한다고 확신합니다!

미리 감사드립니다

답변1

중첩된 폴더 구조가 있다고 말씀하셨기 때문에 *data*/*txt필요한 작업을 수행하지 못할 것이라고 생각합니다. 나는 제안한다

find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;

파일이 하나만 있는 디렉터리에서 실행되는 경우에도 파일 이름을 강제로 표시하는 기능이 /dev/null있습니다 .grep.txt

관련 정보