날짜 범위에서 파일 이름 확장

날짜 범위에서 파일 이름 확장

고려중인 날짜ISO 8601ie ‘YYYY-MM-DD’, eg 형식을 취하고 2015-01-28다음 형식의 파일이 포함된 폴더가 있다고 가정합니다.

AAAA_<date>_BBBB

글로벌 패턴을 찾고 있어요다루기 힘든(또는 Bash) 사이에 파일을 지정하는 데 사용할 수 있습니다.날짜.

2014-12-15예를 들어, 와 사이에 파일을 복사 하고 싶다고 가정해 보겠습니다 2015-02-03. 이 두 날짜(포함) 사이의 파일을 참조하는 전역 표현식을 작성하는 쉬운 방법이 있습니까?

다음이 도움이 될 수 있습니다(출처:사전 편찬 순서):

사전식 순서의 중요한 사용은 날짜를 YYYY-MM-DD로 나타내는 ISO 8601 날짜 형식 체계로 표현됩니다. 이 날짜 정렬은 날짜의 간단한 컴퓨터 정렬을 용이하게 하므로 정렬 알고리즘은 날짜 문자열의 숫자 부분을 숫자가 아닌 문자열과 다르게 처리할 필요가 없으며 날짜는 연대순으로 정렬됩니다.

답변1

질문 zsh에 표시하는 것이 좋습니다글로벌 예선파일 이름에 대한 테스트를 포함합니다:

$ ls -1 AAAA*
AAAA_2012-10-03_BBBB
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB
AAAA_2015-02-03_BBBB
AAAA_2015-10-03_BBBB

$ d1='2014-12-15'
$ d2='2015-02-03'
$ print -l *(e:'[[ "${${REPLY#*_}%_*}" > "$d1" && "${${REPLY#*_}%_*}" < "$d2" ]]':)
AAAA_2014-12-28_BBBB
AAAA_2015-01-03_BBBB

특정 날짜 형식에 대해 간단한 문자열 비교를 수행할 수 있습니다.

AAAA_date_BBBB여기서는 귀하의 파일 이름이 질문과 같이 지정되고 "날짜" 부분이 매개변수 확장을 통해 추출된다고 가정합니다 . 실제 사례 시나리오에 적합한 방식으로 "날짜"를 얻으려면 이 코드를 수정해야 할 수도 있습니다.

관련 정보