여러 하위 디렉토리에서 최신 파일 나열


1

여러 개의 하위 디렉토리 (GUID를 사용하여 이름이 지정됨)가 있는데 여기에는 실행중인 컴퓨터 시뮬레이션의 결과 파일이 포함되어 있습니다. 파일의 이름은 모두 다음과 같이 지정됩니다. hydro_configuration_xxxx.xyz. 여기서 xxxx는 0000 이상의 4 자리 숫자입니다. 최신 파일은 가장 높은 4 자리 숫자입니다. 각 하위 디렉토리의 최신 파일과 해당 디렉토리를 나열하고 싶습니다.

따라서, 예를 들어, hydro_configuration_0000.xyz에서 hydro_configuration_0123.xyz로 파일 hydro_configuration_0000.xyz를 포함하는 서브 디렉토리 fc86783b-bcc5-4456-8964-049682ee81aa와 주어진 파일 hydro_configuration_0000.xyz를 hydro_configuration_3564로 포함하는 디렉토리 e608273d-35bd-442c-9de1-0ec184aa0d95 출력을 생성하는 명령이 필요합니다.

./fc86783b-bcc5-4456-8964-049682ee81aa/hydro_configuration_0123.xyz 
./e608273d-35bd-442c-9de1-0ec184aa0d95/hydro_configuration_3564.xyz

유용한 사용자가 답변을 남겼지 만 수락하기 전에 삭제했습니다. 다음 명령으로 필요한 결과를 얻었습니다. find n512 / -type d | 읽는 동안 d; ls -ltr $ d / hydro * | 꼬리 -n 1; done | awk -F "" ''{print $ 8} '> out.txt
endian

답변:


2

latestfile.sh다음 내용으로 bash 스크립트 를 작성하십시오 .

#!/bin/bash
ls -1tr "$1" | tail -n1

실행 가능 chmod +x latestfile.sh하도록 실행하십시오 .

그런 다음 다음 명령을 실행하십시오.

find test -mindepth 1 -type d -name "hydro_configuration_*" -printf "%p/" -a -exec ./latestfile.sh {} \;

패턴과 일치하는 모든 디렉토리를 찾아 이름을 인쇄 한 다음 /최신 파일 이름을 표시합니다.


감사합니다. 실제로 다른 방법을 사용했지만 귀하의 방법도 효과가 있다고 확신합니다. 나를 도와 준 원래 사용자가 자신의 답변을 삭제 했으므로 대신 귀하의 답변을 수락하겠습니다.
endian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.