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

一行perl程序,能做那些事(不断更新中)

发布时间:2020-12-15 23:57:40 所属栏目:大数据 来源:网络整理
导读:参考地址: http://www.ppurl.com/2013/12/perl-one-liners.html ? 1、文件关键字替换 yang@yang :~/src$ cat log.txt ? huan huan huan yang@yang :~/src$ perl -pi -e 's/huan/yang/g' log.txt ??? #参数说明: -p? 按行执行?? -i? 把运行结果写入文件中 -

参考地址: http://www.ppurl.com/2013/12/perl-one-liners.html ?

1、文件关键字替换

yang@yang :~/src$ cat log.txt ?
huan
huan
huan
yang@yang :~/src$ perl -pi -e 's/huan/yang/g' log.txt ??? #参数说明: -p? 按行执行?? -i? 把运行结果写入文件中 -e 脚本语句直接输入???
yang@yang :~/src$ cat log.txt ?
yang
yang
yang
yang@yang :~/src$?


yang@yang :~/src$ ls log* ?
log.txt
yang@yang :~/src$ perl -pi_bak -e 's/yang/huan/g' log.txt? ? # 对修改的文件进行备份?

yang@yang :~/src$ ls log* ?
log.txt? log.txt_bak



perl -pi -e 's/you/me/g' file1 file2 file3? #同时对多个文件关键字替换?




yang@yang :~/src$ cat log.txt
you
you me ?
you me
you
yang@yang :~/src$ perl -pi -e 's/you/me/g if /me/' log.txt? ? #首先 if /me/? 判断当前行是否存在关键字 “me”? ,如果存在则进行替换 s/you/me/g? ;
yang@yang :~/src$ cat log.txt
you
me me ?
me me
you
yang@yang :~/src$


yang@yang :~/src$ cat log.txt
you
you 11 ?
you 11
you
yang@yang :~/src$ perl -pi -e 's/you/number/g if /d/' log.txt?? # 对关键字判断可以使用正则表达式 d 任意数字[0-9]? w 任意单词字符[ 0-9a-zA-Z]? W相反? s 空白字符[ t n r]? S 相反
yang@yang :~/src$ cat log.txt
you
number 11 ?
number 11
you
yang@yang :~/src$?


yang@yang :~/src$ perl -ne 'print "$. $_" ' log.txt ? # 输出行号? $.? 特殊变量代表行号
1 you
2 you
3 number ?
4 number


yang@yang :~/src$ cat log.txt ?
2 2 2 2
3 3 3 3
yang@yang :~/src$ perl -MList::Util=sum -alne 'print sum @F ' log.txt ? # -M 调用模块 -a 参数自动分割行赋给@F数组? -l 参数自动换行
8
12
yang@yang :~/src$

(编辑:李大同)

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

    推荐文章
      热点阅读