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