Bash Shell重命名多个文件名

时间:2018-01-30 23:37:32

标签: bash macos shell mv

我需要重命名像

这样的文件
filename-367519.mp4 
otherfilename-367515.mp4
andotherfilename-377530.mp4

367519-filename.mp4
...

1 个答案:

答案 0 :(得分:1)

我为你写了一个简单的脚本。

#!/bin/bash

full_filename=$(basename $1)
filename_noextension="${full_filename%%.*}"

filename=$(echo "$filename_noextension" | cut -d"-" -f1);
number=$(echo "$filename_noextension" | cut -d"-" -f2);
extension="${full_filename##*.}"

result="$number-$filename.$extension"

mv $1 $result

运行它: bash ./rename.sh filename-367519.mp4

请注意,命令cut使用符号-作为分隔符,稍后在result="$number-$filename.$extension"中将其用作字符串。

参考: http://wiki.bash-hackers.org/syntax/pe#substring_removal