1

我在一个目录中有一些 HTML 和 JavaScript 文件。我想在每个 JavaScript (name.js) 文件的末尾附加“_backup”。它的单线是什么?

4

3 回答 3

4

选择你的毒药:

  1. File::Copy

    use File::Copy 'move';
    for ( glob "*.js" ){  # Platform independent
        move( $_, "${_}_backup" ) or warn "Failed to copy '$_'";
    }
    
  2. rename功能

    for ( glob "*.js" ){   # Not platform independent
        rename( $_, "${_}_backup" ) or warn "Failed to copy '$_'";
    }
    
  3. *nixrename实用程序

    $ rename .js .js_backup *.js
    
于 2013-04-08T09:00:31.553 回答
1

-i 选项创建具有给定后缀的备份文件,然后提供一个空脚本。

perl -i_backup -p -e "" *.js; rm *.js

这实际上是一条两条线

感谢Zaid 的回答

perl -e 'rename($_,$_."_backup") for (glob "*.js");'
于 2013-04-08T08:44:31.140 回答
0

这是一条略长的线,但它是 Perl 单线!

我假设你想要命名的文件

abc.js
def.js
dog.js

改名为

abc_backup.js
def_backup.js
dog_backup.js

perl -e 'for(@ARGV) { ($bname)=/(.*)\.js/; rename $_, "$1_backup.js"; } ' *js

大多数 Linux 发行版都包含一个“重命名”程序,它实际上是用 Perl 编写的,并执行类似这样的重命名操作;见man rename

于 2013-04-08T09:04:29.443 回答