저장한 파일이 너무 많아요
Year -> Month -> Day -> bunch of .nc files
nc 파일이 포함된 모든 디렉터리 목록을 생성하고 싶습니다. 각 nc 파일의 경로를 나열할 수 있습니다.
find /Year/ -name *.nc | sort > directory_list.txt
이 기본 파일 내 해당 폴더의 하위 디렉터리에서 각 .nc 파일을 찾습니다. 이 결과는 "directory_lists" 텍스트 파일에 저장됩니다.
/2000/01/01/nc_file1.nc
/2000/01/01/nc_file2.nc
/2000/01/01/nc_file3.nc
/2000/01/02/nc_file3.nc
/2000/01/03/nc_file3.nc
잠깐... 각 "요일"에 대한 디렉토리 목록을 갖도록 이것을 어떻게 수정합니까? 이는 위의 명령을 사용하여 얻은 것과 유사하지만 nc 파일에 대한 정보를 포함하지 않습니다.
나는 시도했다:
find /Year/ | sort > directory_list.txt
하지만 이것은 모든 경로를 반환합니다.
/Year/
/Year/Month
/Year/Month/Day
나는 결과가 다음과 같기를 원합니다:
/2000/01/01/
/2000/01/02/
/2000/01/03/
잠깐...디렉토리 이름을 반복하지 마세요.
나는 이것이 Year 디렉토리에서 세 번째 수준 폴더의 디렉토리를 얻으려는 것과 같다고 생각합니까? 어떤 조언이라도 대단히 감사하겠습니다.
답변1
find /Year/ -name '*.nc' | sed -e 's:/[^/]*$:/:' | sort -u
이름이 "*.nc"와 일치하는 파일이 하나 이상 포함된 디렉터리 목록을 제공합니다.
답변2
egrep '/[^/]+/[^/]+/' directory_list.txt
그러면 정확히 3 을 포함하는 모든 행이 제공되며 /
이는 정확히 원하는 디렉토리 깊이입니다.