命令:
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。
点击(此处)折叠或打开
- use strict;
- use warnings;
- use File::Find;
-
- my $root="D:\\workspaces\\test";
- find(\&handle, $root);
-
- sub handle
- {
- my $file = $:name;
- return if -d $file;
-
- open (IN) or die "$!,opening $file\n";
- open (OUT">TEMP"opening TEST\n";
-
- while (my $line = <IN>)
- {
- $line =~ s/xxx;/yyy;/g;
- print OUT $line;
- }
-
- close OUT;
- close IN;
-
- rename("TEMP";
- unlink;
- }