重命名批量文件删除括号中的任何内容

时间:2017-06-08 00:12:30

标签: java bash

我想删除文件并删除括号中的任何内容

现在我有档案:

123-456(434).JPG

454-6hf(32).JPG

99 ggr4(44335).JPG

重命名为:

123-456.jpg

454-6hf.jpg

99-ggr4.jpg

1 个答案:

答案 0 :(得分:1)

此bash脚本将文件移动为名称:

#!/bin/bash
for f in *.jpg; do
   if [[ $f =~ ([^\)]+)\([^\)]+\)(.*) ]]; then
     mv "$f" "${BASH_REMATCH[1]}${BASH_REMATCH[2]}";
   fi
done

原件:

  

ls [14] *
  123-456(434).jpg 454-6hf(32).jpg

发表:

  

ls [14] *
  123-456.jpg 454-6hf.jpg

注意:如果所有文件都以数字开头,您可以调整*.jpg或匹配以确保仅限于这些文件。例如,上面的示例会将myfile(123).jpg移至myfile.jpg。更改为[0-9]*.jpg将仅限于以数字开头的.jpg文件。