다음 파일 이름 구조를 가져 와서 적절한 요일로 이름을 변경해야합니다.
GMT20161003-randomtext.mp4
결국 monday.mp4
다양한 하위 디렉토리에 이러한 파일이 많이 있으므로 재귀 적으로 실행할 수 있으면 더 좋을 것입니다.
와 함께 zsh
:
zmodload zsh/datetime
autoload zmv
zmv -n '(**/)GMT(<->)*(.mp4)(#qD.)' '$1${(L)$(
strftime %A "$(strftime -r %Y%m%d $2)")}$3'
-n
실제로 이름을 바꾸 려면 을 제거하십시오 .
<->
십진수와 일치합니다.(...)
는 $2
, (.mp4)
in $3
및의 디렉토리 ( (**/)
, 재귀)에서 캡처 됩니다 $1
.(#qD.)
일반 파일 ( .
디렉토리도, 심볼릭 링크도, fifos / devices도 아님 ...) 만 선택 하고 숨겨진 디렉토리 ( D
dotfile / dotdir의 경우)를 통과 하는 glob 한정자입니다 .${(L)...}
: 확장을 소문자로 변환합니다.strftime -r %Y%m%d
: reverse-strftime (strptime)은 날짜를 epoch 시간으로 변환합니다.strftime %A ...
: 해당 epoch 시간에 대한 형식 시간을 % A는 전체 요일을 나타냅니다. 로케일에 따라 다릅니다. (프랑스어 로케일에서는 프랑스어 요일이 표시됩니다).GNU 시스템 및 GNU 쉘 ( bash
)을 사용하면 다음을 수행 할 수 있습니다.
find . -name 'GMT*-*.mp4' -type f -exec bash -c '
for file do
base=${file##*/}
date=${base#GMT}
date=${date%%-*}
wday=$(date -d "$date" +%A)
echo mv -i "$file" "${file%/*}/${wday,,}.mp4"
done' bash {} +
( echo
작업을 수행하려면 제거하십시오 ).
${var,,}
주도 bash
의 조작은 소문자로 변환하는 방법. 날짜를 구문 분석하는 date -d
GNU date
방식입니다 ( strftime -r
위와 같이).
zmv
파일 이름 변경을 시작하기 전에 충돌을 확인 하지만 , 이것은 그렇지 않습니다. 따라서 우리 -i
는 적어도 파일을 방해하는 것을 피할 수있는 기회를주기 위해 위의 내용을 추가 합니다. GNU mv
에는 -v
어떤 일이 발생했을 때 나중에 명령을 되 돌리는 데 유용 할 수있는 작업을 표시 하는 옵션이 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다