변수를 사용하여 파일 이름을 다음 형식으로 바꾸는 스크립트가 있습니다.
(track#) - (title) - (artist) - (date).mp3
#! /bin/zsh -
set -o extendedglob
pattern='(#b)*_ \((<0-999>)\)(* )—( * )(<1-12>)_(<1-31>)_(<1900-2100>)(.mp3)'
ret=0
for file {
if [[ $file = $~pattern ]] {
argv=( "$match[@]" )
mv -i -- $file "${(l[3][0])1} -$2-$3- $6-${(l[2][0])5}-${(l[2][0])4}-0900$7" || ret=$?
}
}
exit $ret
이 스크립트, 이 파일을 사용하십시오.
Public Talks_ (9) Walking With God Brings Blessings Now and Forever — Chris Ruscher 10_28_2023.mp3
이름 바꾸기:
009 - Walking With God Brings Blessings Now and Forever - Chris Ruscher - 2023-28-10-0900.mp3
형식은 트랙 번호 - 제목 - 아티스트 - 날짜.mp3, 표시 변수: 입니다 $1 - $2 - $3 - $6-$5-$4-0900$7
.
위의 모든 작업은 완벽하게 작동합니다.이제 이 스크립트에 추가하고 싶습니다.
그런 다음 이 값을 아래 표시된 메타데이터에 삽입하려고 합니다.
$1
>> 에서 개최되는 궤도kMDItemAudioTrackNumber
- 제목, 저장 위치
$2
>>kMDItemTitle
- 아티스트, 개최 장소
$3
>>kMDItemAuthors
- 다음을 연결한 타임스탬프:
$6${(l[2][0])5}${(l[2][0])4}0900
>>kMDItemContentCreationDate
또한 스크립트는 파일 생성 날짜를 kMDItemContentCreationDate
. touch -t
위의 마지막 단계(4)에서 루프에 명령을 추가하려고 시도했지만 작동하지 않았습니다.
#! /bin/zsh -
set -o extendedglob
pattern='(#b)*_ \((<0-999>)\)(* )—( * )(<1-12>)_(<1-31>)_(<1900-2100>)(.mp3)'
ret=0
for file {
if [[ $file = $~pattern ]] {
argv=( "$match[@]" )
> fecha=( "$6${(l[2][0])5}${(l[2][0])4}0900$7" )
> touch -t $(date -j -f "%Y%m%d%H%M" $fecha +%Y%m%d%H%M) $file
mv -i -- $file "${(l[3][0])1} -$2-$3- $6-${(l[2][0])5}-${(l[2][0])4}-0900$7" || ret=$?
}
}
exit $ret
이는 터미널에서 zsh를 사용하는 macOS용입니다.
메타데이터 편집과 생성 날짜 조정이라는 두 가지 문제에 대해 어떻게 생각하시나요? 저는 스크립팅이 처음이라 포럼에서 찾은 내용을 정리했습니다. 귀하의 통찰력에 진심으로 감사드립니다.