perl 文件内容替换

前端之家收集整理的这篇文章主要介绍了perl 文件内容替换前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

命令:

perl 命令可以批量替换文件中的一些内容,操作起来非常高效。下面举几个例子:

perl -pi -e "s/aaa/bbb/gi" test.txt

上面的命令把test.txt文件中的字符aaa替换成bbb

-pi.bak .txt

上面的命令把test.txt文件中的字符aaa替换成bbb,并生成一个test.txt.bak的备份文件

find ./ -name "*.txt" | xargs perl "s/aaa/bbb/gi"

上面的命令把当前目录下所有的.txt文件中的字符aaa替换成bbb,并生成相应的.bak的备份文件

注意:如果是报错can‘t do inpalce without backup ,请执行第二种方案,针对window进行验证过。 

  •  -i 大致是用来读取文件时进行备份操作。
  • -e 告诉Perl后面跟上perl语句

 -p和-i可以合在一起-pi,-p -e也可以何在一起,但是-i,-e不能合在一起写-ie。


1. File::Find实现文件夹下文件内容的批量修改

点击(此处)折叠或打开

  1. use strict;
  2. use warnings;
  3. use File::Find;

  4. my $root="D:\\workspaces\\test";
  5. find(\&handle, $root);

  6. sub handle
  7. {
  8.     my $file = $:name;
  9.     return if -d $file;
  10.      
  11.     open (IN) or die "$!,opening $file\n";
  12.     open (OUT">TEMP"opening TEST\n";
  13.     
  14.     while (my $line = <IN>)
  15.     {
  16.         $line =~ s/xxx;/yyy;/g;
  17.         print OUT $line;
  18.     }
  19.     
  20.     close OUT;
  21.     close IN;
  22.     
  23.     rename("TEMP";
  24.     unlink;
  25. }

猜你在找的Perl相关文章