Chinaunix首页 | 论坛 | 博客
  • 博客访问: 467521
  • 博文数量: 118
  • 博客积分: 4015
  • 博客等级: 上校
  • 技术积分: 1233
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-24 22:11
文章分类

全部博文(118)

文章存档

2013年(5)

2011年(61)

2010年(52)

分类: Python/Ruby

2011-04-01 18:16:56

今天,我们来探讨一下perl的命令行操作,基本语法是这样
perl -n -e 'line process cmd' your_file
这样的话就能对文件的每一行进行处理,其实我们的大部分工作,也就是读文件,然后
对每行的内容进行处理,所以,用perl -n -e 命令行操作其实可以使我们事半功倍
比如,我有成绩单文件 score
Jim english 99
Jim math 80
Tom english 77
Tom math 44
...
我需要查看数学成绩不及格的学生和其成绩
那么我只要这么搞就OK:
 perl -n -e 'my @fields = split(/\s+/,$_);chomp @fields; if($fields[1] eq "math" and $fields[2] < 60){ print $_;}' score

当然,你也可以修改你的.bashrc,做一个alias
alias eperl='perl -n -e'
然后,你只需要
eperl 'my @fields = split(/\s+/,$_);chomp @fields; if($fields[1] eq "math" and $fields[2] < 60){ print $_;}' score 就OK了
阅读(14027) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

hunancjz2016-03-30 16:56:04

neobilly:在windows下,perl -ne 'procedure' file
是会报错的,所以
需要用双引号
perl -ne "procedure" file

学习了,在windows上遇到这个问题。

回复 | 举报

neobilly2011-04-12 13:08:13

在windows下,perl -ne 'procedure' file
是会报错的,所以
需要用双引号
perl -ne "procedure" file