次のような名前の1000ファイルを含むディレクトリがあります。
2019-07-21-17-50-06 - 123 - abc - xyz.zzz
日付と時刻の左端の19文字のみが必要です。
Macには名前変更コマンドがないので、ここでmvコマンドも機能することがわかりました。ファイル名の切り捨てこれは私にこれを与える
for i in *.mp3; do mv "$i" "${i:19}"; done
ところで、左ではなく右から切り取ったようです。
一番左の19文字とサフィックスを保持するようにこのコマンドをどのように変更できますか?
ありがとうございます!
ベストアンサー1
${i:19}
19番目(まあ、20番目 - 0インデックス操作)文字で始まる部分文字列。最初から19文字の部分文字列はです${i:0:19}
。
すべてのファイルの拡張子の前に19文字がある場合:
for i in *; do mv "$i" "${i:0:19}.${i##*.}"; done
${i##*.}
filename の最後の項目まですべての項目を削除し、.
拡張子のみを残します。
Perlの名前変更はHomebrewで利用可能です。
% brew info rename
rename: stable 1.600 (bottled), HEAD
Perl-powered file rename script with many helpful built-ins
http://plasmasturm.org/code/rename