수백 개의 디렉토리가 있고 각 디렉토리에는 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
파일에서 이러한 행이 나타날 때마다 디렉토리 이름이 인쇄됩니다.