Regular-Expression

使用正則表達式重命名 Mac OS 終端中的文件

  • January 10, 2014

數百個圖像需要在 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

引用自:https://unix.stackexchange.com/questions/108728