![특정 파일 내의 특정 텍스트를 반복적으로 검색하지만 특정 폴더에서만 검색합니다.](https://rvso.com/image/1345296/%ED%8A%B9%EC%A0%95%20%ED%8C%8C%EC%9D%BC%20%EB%82%B4%EC%9D%98%20%ED%8A%B9%EC%A0%95%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EB%B0%98%EB%B3%B5%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EA%B2%80%EC%83%89%ED%95%98%EC%A7%80%EB%A7%8C%20%ED%8A%B9%EC%A0%95%20%ED%8F%B4%EB%8D%94%EC%97%90%EC%84%9C%EB%A7%8C%20%EA%B2%80%EC%83%89%ED%95%A9%EB%8B%88%EB%8B%A4..png)
많은 폴더와 파일이 포함된 중첩된 폴더 구조가 있습니다.
파일 내에서 패턴(예: "sampletext")을 검색하려면 어떻게 해야 합니까? 단, 파일 이름이 패턴과 일치하고(예: .txt 확장자를 가진 파일 내부만 검색) 마지막으로 포함하는 폴더 이름이 다른 패턴과 일치해야 하는 경우에만 해당됩니까? (예: "데이터").
나는 그것을 하기 위해 쉘 스크립트를 작성할 수 있다고 확신하지만, 나에게 새로운 것을 가르쳐 줄 영리한 한 줄의 스크립트가 존재한다고 확신합니다!
미리 감사드립니다
답변1
중첩된 폴더 구조가 있다고 말씀하셨기 때문에 *data*/*txt
필요한 작업을 수행하지 못할 것이라고 생각합니다. 나는 제안한다
find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;
파일이 하나만 있는 디렉터리에서 실행되는 경우에도 파일 이름을 강제로 표시하는 기능이 /dev/null
있습니다 .grep
.txt