Regular-Expression
使用正則表達式重命名 Mac OS 終端中的文件
數百個圖像需要在 MacOS 10.9 Mavericks 上使用正則表達式通過終端命令重命名。
這些文件以這種方式命名:
0045AW489R3T(IPCAM)_0_20131124101245_931.jpg 0021DF025C8E(IPCAM)_0_20131127101721_44591.jpg 389223GT4Z6W(IPCAM)_0_20131128103423_7893282.jpg
他們需要重命名為:
2013-11-24 10-12-45.jpg 2013-11-27 10-17-21.jpg 2013-11-28 10-34-23.jpg
誰能告訴我怎麼做?
你可以試試
for a in *.jpg ; do mv -- "$a" "${a:22:4}-${a:26:2}-${a:28:2} ${a:30:2}-${a:32:2}-${a:34:2}.jpg" ; done
有點難看,但它應該可以完成工作。像往常一樣,一定要先在副本上進行測試。
如果文件名的第一部分並不總是具有相同的長度,您可以使用awk在第二部分之後提取字元串
_
並使用前 8 位來構造文件名:#!/usr/bin/env bash for file in folder/*; do outName=$(awk -F"_" '{ print substr($3,1,4)"-"substr($3,5,2)"-"substr($3,7,2) }' <<< "${file}").jpg mv "${file}" "${outName}" done