一行perl程序,能做那些事(不断更新中)
2014-06-03 00:00
218 查看
参考地址: 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$
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$
相关文章推荐
- 一段关于从HTML文件找出资源地址的小程序(不断更新)
- 升级安装Windows7后需要处理的兼容性程序(不断更新中)
- JAVA与ACM的那些事(不断整理更新ing)
- 程序员表白程序,开放源码,不断更新(第三篇:第二弹)
- 程序员表白程序,开放源码,不断更新(第三篇:第二弹)
- perl处理文本经验积累(不断更新中)
- 写程序过程中的积累,不断更新。。。
- 程序员表白程序,开放源码,不断更新
- 程序框(不断修改,未完,更新时间14.02.05)
- 程序员表白程序,开放源码,不断更新(第二篇)
- C#窗体程序设计小技巧(不断更新中)
- c++学习笔记序列之经典处理程序汇总(不断更新中)
- iphone程序崩溃原因总结(不断更新中。。。)
- 【编程】使用友善之臂mini2440开发嵌入式QT程序——不断更新中
- Android学习记录:jni 的那些事(不断整理更新)
- 一步一步学习ASP.NET MVC 1.0创建NerdDinner 范例程序(不断更新)
- 功能丰富的 Perl: 一行程序
- 编写高质量代码:改善Java程序的151个建议 勘误 [不断更新]
- 程序员表白程序,开放源码,不断更新
- perl应用:一些perl例(不断更新中ing........)