使用bash重命名多个文件的中间名

使用bash重命名多个文件的中间名

我有多个文件,/opt/rec/我只想使用 bash 重命名其中的一部分。

原始文件名:

WK6LZTPR99999999_dig_2017-07-10 01:55:57.xy

我想将该目录中的所有文件更改为:

WK6LZTPR99999999_cur_2017-07-10 01:55:57.mp3

答案1

这是bash解决方案。

for file in /path/to/*; do 
    nname="${file%%.*}.mp3"  # strip last part of file till first . seen
    echo mv "$file" "${nname//dig/cur}"  # replace 'dig' with 'cur'
done

有了mmv,就容易多了。

mmv '*_*_*.*' '#1_cur_#3.mp3'

或者与zmv

zmv -w '*_*_*.*' '$1_cur_$3.mp3'

答案2

珀尔 改名命令:

rename 's/_dig_([^.]+)\.xy$/_cur_$1.mp3/' /opt/rec/*.xy

答案3

只需两步即可使用“重命名”命令:

cd /opt/rec/
rename -v "_dig_" "_cur_" *.xy
rename -v ".xy" ".mp3" *.xy

相关内容