【问题标题】:Bash Shell rename multiple file name [duplicate]Bash Shell重命名多个文件名[重复]
【发布时间】:2018-01-30 23:37:31
【问题描述】:

我需要重命名文件,如

filename-367519.mp4 
otherfilename-367515.mp4
andotherfilename-377530.mp4

367519-filename.mp4
...

【问题讨论】:

  • 你的谷歌搜索结果是什么?您从有关文件重命名的所有其他问题中学到了什么?

标签: bash macos shell mv


【解决方案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

【讨论】:

  • 我在所有文件名中都有很多空间,所以我使用脚本执行循环,用 '_' FILES=* for f in $FILES do mv "$f" echo $f | tr ' ' '_' 替换空格完成比使用相同的循环我使用你的代码非常感谢。
  • 如果这解决了您的问题,请将问题标记为已回答。对我来说更多的积分,耶!
猜你喜欢
  • 2012-05-01
  • 2011-10-18
  • 2019-09-02
  • 2016-01-25
  • 2014-01-06
  • 2016-03-14
  • 2015-12-11
  • 2013-07-08
  • 2013-03-01
相关资源
最近更新 更多