文档章节

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

holelulu
 holelulu
发布于 2014/06/03 23:41
字数 380
阅读 137
收藏 3

参考地址: 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$


© 著作权归作者所有

共有 人打赏支持
holelulu
粉丝 0
博文 18
码字总数 5585
作品 0
其他
perl 的调试和性能测试

perl程序的调试,以前玩php都是print,var_dump(),firebug之类来调试。在perl中,也有很多来方法我们调试的。在我看来调试分二种,一种是功能调试(排错之类保证功能完整).一种是性能调试。...

AlphaJay
2012/04/05
0
0
Perl 5.6 的新特性在哪些方面优于 C/C++/Java?

Cultured Perl: 吸引 C 和 Java 程序员目光的Perl 5.6 Perl 5.6 的新特性在哪些方面优于 C/C++/Java? 转自:http://www-128.ibm.com/developerworks/cn/linux/sdk/perl/culture-2/index.htm......

范堡
2009/01/06
597
0
转帖-Linux下如何同时替换多个文件中的文本或字符串

作者:吉庆( qingfang0515@sina.com ) 主页:http://hi.baidu.com/jiqing0925 转载请保留作者信息。 ------------------- 做一件比较复杂的事通常存在多种方法。 一次性替...

erichd
2015/08/31
103
0
年度回顾 看看 2016 年编程语言发展趋势

回顾年度最热门的 AI 项目和容器的编程语言、新出现的编程语言,和更多编程趋势。 技术在不断前进 - 可能不总是向前,但总是在变动。但即使对于那些关注发展趋势及其对程序员的影响的人来说,...

局长
2017/01/23
4.4K
11
[IBM DW] 将 Perl 移植到 Python

我首先要引用 Damian Conway 在 Perl Best Practices 中的论述:“Perl 的 ‘面向对象’ 方法有点太 Perl 了:有太多实现方法......可能的实现、结果和语义组合太多,很难发现两个不相关的类...

红薯
2010/10/19
400
0

没有更多内容

加载失败,请刷新页面

加载更多

Mac OS X下Maven的安装与配置

Mac OS X 安装Maven: 下载 Maven, 并解压到某个目录。例如/Users/robbie/apache-maven-3.3.3 打开Terminal,输入以下命令,设置Maven classpath $ vi ~/.bash_profile 添加下列两行代码,之后...

TonyStarkSir
今天
3
0
关于编程,你的练习是不是有效的?

最近由于工作及Solution项目的影响,我在重新学习DDD和领域建模的一些知识。然后,我突然就想到了这个问题,以及我是怎么做的? 对于我来说,提升技能的项目会有四种: 纯兴趣驱动的项目。即...

问题终结者
今天
4
0
打开eclipse出现an error has occurred see the log file

解决方法: 1,打开eclipse安装目录下的eclipse.ini文件; 2,打开的文本文件最后添加一行 --add-modules=ALL-SYSTEM 3,保存重新打开Eclipse。...

任梁荣
昨天
4
0
搞定Northwind示例数据库,无论哪个版本的SQLServer都受用

Northwind数据库 从这里可以找到突破口: http://social.msdn.microsoft.com/Forums/zh-CN/Vsexpressvb/thread/8490a1c6-9018-40c9-aafb-df9f79d29cde 下面是MSDN: http://msdn2.microsoft......

QQZZFT
昨天
1
0
mysql主从同步,安装配置操作

准备 两台mysql服务,我这里准备了如下: 主库:192.168.176.128 从库:192.168.176.131 如何在Linux上安装mysql服务,请看https://blog.csdn.net/qq_18860653/article/details/80250499 操作...

小致dad
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部