用bash中的条件重命名

时间:2019-02-08 14:22:15

标签: bash

我是bash脚本的新手,我需要编写一段代码来查找目录COND_*中不以/home/abc/开头的文件。 并使用COND_*重命名文件。

我已经有了重命名部分:

rename 's/(\d{4}_\d+\.xml)/COND_$1/' /home/abc/*.xml.

有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

完全便携

for file in *; do
    case $file in
      COND_*) ;; # bypass
      *) mv "./$file" "COND_$file";;
    esac
done

答案 1 :(得分:0)

其他解决方案:

for file in *; do
    [[ $file =~ ^COND_ ]] || mv "./$file" "COND_$file"
done

首先检查文件是否以COND_开头。否则(通过OR操作||),然后重命名文件。 ./"中的前导./$file"避免与以减号开头的文件发生冲突。