
많은 폴더와 파일이 포함된 중첩된 폴더 구조가 있습니다.
파일 내에서 패턴(예: "sampletext")을 검색하려면 어떻게 해야 합니까? 단, 파일 이름이 패턴과 일치하고(예: .txt 확장자를 가진 파일 내부만 검색) 마지막으로 포함하는 폴더 이름이 다른 패턴과 일치해야 하는 경우에만 해당됩니까? (예: "데이터").
나는 그것을 하기 위해 쉘 스크립트를 작성할 수 있다고 확신하지만, 나에게 새로운 것을 가르쳐 줄 영리한 한 줄의 스크립트가 존재한다고 확신합니다!
미리 감사드립니다
답변1
중첩된 폴더 구조가 있다고 말씀하셨기 때문에 *data*/*txt
필요한 작업을 수행하지 못할 것이라고 생각합니다. 나는 제안한다
find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;
파일이 하나만 있는 디렉터리에서 실행되는 경우에도 파일 이름을 강제로 표시하는 기능이 /dev/null
있습니다 .grep
.txt