変数を使用してファイル名を次の形式に変更するスクリプトがあります。
(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用です。
メタデータの編集と作成日の調整の2つの問題についてどう思いますか?私はスクリプトが初めてだったので、フォーラムで見つけたものをまとめました。あなたの洞察力に心から感謝します。