那谁的技术博客

感兴趣领域:高性能服务器编程,存储,算法,Linux内核
随笔 - 210, 文章 - 0, 评论 - 1183, 引用 - 0
数据加载中……

放弃Shell,主攻Perl

上个礼拜,要求完成一个任务,从下载特定网页并从中抓取一些感兴趣的字段.

做法很简单,用wget获取网页代码,采用正则表达式抓取数据.

刚开始采用Shell,但是到了采用正则的时候出现了问题,我承认我的sed玩的不够好,这个任务应该可以用sed搞定的,但是整了半天都没整好,有人又说可以用grep,弄了半天都没有完成.我开始对使用shell中的小工具反感了起来,虽然根据Unix的哲学,一个工具完成一件事情,通过管道等胶合剂把它们连接在一起.但是,会出现以下的问题:1)对我那个问题而言,可能同时有多个工具可以完成任务,而sed,awk之类的学习成本稍高 2)有一些问题,shell中没有很好的解决办法,比如我将每个网站的地址和抓取数据所需的正则表达式存储在了mysql数据库中,shell中有工具可以访问数据读取它们吗?(如果你知道请告诉我) 3)并不是任何的任务shell中都可以找到工具完成,比如我想写一个测试我的服务器的测试客户端,如果我不会脚本语言,那么很有可能又得从头写一个C程序来完成这个工作.

也就是说,我需要一个工具,功能足够的完备,可以操作文本文件,访问数据库,建立socket连接等等,同时,对一些问题的解决有统一的方案,比如我如果要在文本文件中查找我所需的字段不再要去考虑是采用grep,sed还是awk了.

满足这些要求的脚本语言似乎只有Perl和Python了,去年学过一些Python,感觉语法简洁很容易入门,不过听说速度不够快,今年开始转向了Perl,Perl的语法非常的灵活,是我见到的最灵活的语言,这也许跟这门语言的发明人是个语言学家,倡导"There is more than one way to do it"有关吧.刚开始很不习惯,毕竟我是C程序员出身,习惯了C的语言,现在慢慢的适应了.

话归正题,这里说的放弃Shell指的是不在Shell编程上多花时间,但是基本的Shell命令和概念还是应该有的,万变不离其宗,不懂shell的程序员不能算是优秀的unix程序员,只不过我更加需要一个通用的工具去完成我大部分的工作罢了.

posted on 2008-03-17 22:22 那谁 阅读(3662) 评论(6)  编辑 收藏 引用 所属分类: Perl

评论

# re: 放弃Shell,主攻Perl  回复  更多评论   

呵呵 我也是因为socket的原因 看的perl 现在服务器的陪测程序 都是用perl写的。特适合写陪测脚本。下面是我以前写的几个服务器的陪测脚本http://www.cppblog.com/CppExplore/archive/2007/12/04/37752.html
2008-03-18 09:14 | cppexplore

# re: 放弃Shell,主攻Perl[未登录]  回复  更多评论   

了解 Shell 编程对用好 Shell 很重要的 ;)
2008-08-03 19:04 | Lee

# re: 放弃Shell,主攻Perl  回复  更多评论   

Shell可以的做的事情很多,如果你只是做简单的事情,更适合。
你觉得困难,那是因为你没有用心去学习。譬如你要调用mysql,用shell直接就可以调用mysql的工具啊……
2008-11-24 15:37 | quady

# re: 放弃Shell,主攻Perl  回复  更多评论   

更加需要一个通用的工具去完成我大部分的工作罢了
我也是这样认为的,要用一个更通用的工具来完成大部分任务,而不是老是在考虑该用awk, sed, 还是其它小工具来做某一件事,虽然能很简单地完成.
2009-09-17 16:58 | gdut

# re: 放弃Shell,主攻Perl  回复  更多评论   

你还是shell用的少
2011-09-10 12:32 | 匿名

只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理