复制在此目录中具有模式的文件并更改文件名

时间:2016-08-23 04:21:04

标签: regex bash awk sed

假设我将这些文件放在目录

/var/mydir/web.php
/var/mydir/dbMuseum.php.example
/var/mydir/dbStreet.php.example

在Ubuntu Linux中,一行命令会将所有文件复制并重命名为相同的名称但最后没有.example?...给出正确的结果:

/var/mydir/web.php
/var/mydir/dbMuseum.php.example
/var/mydir/dbMuseum.php
/var/mydir/dbStreet.php.example
/var/mydir/dbStreet.php

1 个答案:

答案 0 :(得分:1)

只需使用参数扩展的bash for构造即可:

for f in *.example; do mv -i "$f" "${f%.*}"; done

Ubuntu有renameprename):

rename -n 's/\.[^.]+$//' *.example

-n执行干运行,删除-n以进行实际重命名:

rename 's/\.[^.]+$//' *.example