![지정된 콘텐츠가 포함된 지정된 파일이 포함된 디렉터리를 나열하는 방법은 무엇입니까?](https://linux55.com/image/10672/%EC%A7%80%EC%A0%95%EB%90%9C%20%EC%BD%98%ED%85%90%EC%B8%A0%EA%B0%80%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EC%A7%80%EC%A0%95%EB%90%9C%20%ED%8C%8C%EC%9D%BC%EC%9D%B4%20%ED%8F%AC%ED%95%A8%EB%90%9C%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%EB%A5%BC%20%EB%82%98%EC%97%B4%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
수백 개의 디렉토리가 있고 각 디렉토리에는 report.ext
다음과 같은 한 줄을 포함할 수 있는 이름의 파일이 있습니다.
Beta score for best model 95.35
파일이 존재하고 해당 행이 포함되어 있으며 해당 행에 95보다 큰 값이 포함된 디렉터리 목록을 가져오고 싶습니다.
명령줄 도구를 통해 이를 달성할 수 있습니까?
답변1
가장 간단한 방법은 이러한 파일을 찾아 내용이 일치하면 상위 디렉터리를 인쇄하는 것입니다. 예를 들어:
find . -name report.ext -type f -exec awk '
/^Beta score for best model [0-9.]+$/ && $NF > 95 {
dir = FILENAME
sub("/[^/]*$", "", dir)
print dir
nextfile
}' {} +
awk
구현이 이것을 지원하지 않는 경우 nextfile
파일에서 이러한 행이 나타날 때마다 디렉토리 이름이 인쇄됩니다.