加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl 文件内容替换

发布时间:2020-12-15 23:39:18 所属栏目:大数据 来源:网络整理
导读:命令: perl 命令可以批量替换文件中的一些内容,操作起来非常高效。下面举几个例子: perl - pi - e "s/aaa/bbb/gi" test . txt 上面的命令把test.txt文件中的字符aaa替换成bbb - pi . bak . txt 上面的命令把test.txt文件中的字符aaa替换成bbb,并生成一个te

命令:

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进行验证过。?

  • -p 告诉Perl对后面添加的文件名参数进行遍历,大致和sed中的这段代码效果类似?

  • ?-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:workspacestest";
  5. find(&handle,?$root);

  6. sub?handle
  7. {
  8. ????my $file?=?$:name;
  9. ????return if?-d $file;
  10. ?????
  11. ????open?(IN)?or die?"$!,opening $filen";
  12. ????open?(OUT">TEMP";
  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. }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读