免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 4767 | 回复: 15
打印 上一主题 下一主题

感觉shell+awk+sed可以解决任何问题..为啥要用perl [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-19 15:31 |只看该作者 |倒序浏览
发这个帖子不是为了引起啥...砖头尽管来.....只是想解开心里的疑问

最近一直在看perl 不是想用它去开发什么程序..只是心里觉得作为一个SA perl是必要的- -
然后...看完了小骆驼....突然发现....很多东西shell+awk+sed都可以做..基本所有日常应用..为啥要用perl....
....昨天一直在研究一个程序
就是简单的ps aux|awk '{print $2,$3,$4}';这样...想用perl来写...
怎么写呢....
#!/usr/bin/perl

use strict;

open(PS,"ps aux|") or die $!;
while (my $line = <PS>) {
    my @st = split(" ", $line);
    print "@st[0,1,2]\n";
}
想了半天
然后顿时发现....这好复杂.....

然后今天在看DBD:mysql的链接....
想输出一个表的所有
比如一个shell命令
/usr/local/bin/mysql -uxxxx -pxxxx -e "select * from mysql.user"
这样....
然后用perl做.....
#!/usr/bin/perl

use DBI;


$db="mysql";
$host="localhost";
$user="xxxx";
$password="xxxxxxx";
$dbh = DBI->connect("DBI:mysql:database=$db;host=$host",
                         $user, $password,
                        {'RaiseError' => 1});
my $sth = $dbh->prepare("select * from user");
$sth->execute();
my $row = $sth->fetchrow_hashref();
print $row;
因为还没看完dbd 这个$row是一个hash- -........还没输出呢....
所以我顿时有点沮丧.....

现在在想...perl写cgi网页可以简单操作 可以跨平台 可以xxx....
但是日常的包括比较重要的都可以用shell解决..为啥要用perl perl不是为了解决shell不足产生的吗......
链接数据库需要这么多步骤..为啥不用一个客户端直接连着输出结果呢.....


可能我的程序写得差...没有大牛的一想就出来的感觉......是不是这个原因....
也可能是shell写惯了...想很多东西都是shell的方式..之类的?

刚在看perl for system administrator
里面一个find解决的问题....perl要写额函数 然后再用程序调用函数..为啥不直接用find加xargs解决..

真的没别的意思..不要评价孰优孰劣..肯定是自己水平未到..只是这个疑问希望过来人帮忙解一下.....

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2009-07-19 15:39 |只看该作者
这问题,  应该去问Perl版的大牛们吧~, 他们会给你好好解释的~~

论坛徽章:
0
3 [报告]
发表于 2009-07-19 15:50 |只看该作者
也不能这么说,用C写写的代码更多……
存在就有意义,更何况perl还是相对比较热门的语言。扬长避短的应用各种语言,这才是关键。

论坛徽章:
0
4 [报告]
发表于 2009-07-19 15:57 |只看该作者
想到了一个...
就是用socket模块写链接程序 或者用LWP获取网页数据 很多底层应用之类的...perl都可以写 这个shell做不到貌似.....
但是这个更像程序员了- -........

论坛徽章:
0
5 [报告]
发表于 2009-07-19 16:26 |只看该作者
perl 可以使用功能更强大的正则表达式,shell+awk+sed可以解决,perl也可以,就看你什么用的熟练了。
个人感觉perl在完成更加复杂的任务,在超大文件,超多文件要处理时,可以很灵活地去处理任务,那时如果用shell ,awk, sed话自己感觉不顺手。
纯属个人感受。。。

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
6 [报告]
发表于 2009-07-19 16:33 |只看该作者
flw会说,perl可以解决任何问题..为啥要用shell+awk+sed

论坛徽章:
23
15-16赛季CBA联赛之吉林
日期:2017-12-21 16:39:27白羊座
日期:2014-10-27 11:14:37申猴
日期:2014-10-23 08:36:23金牛座
日期:2014-09-30 08:26:49午马
日期:2014-09-29 09:40:16射手座
日期:2014-11-25 08:56:112015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:0315-16赛季CBA联赛之山东
日期:2017-12-21 16:39:1915-16赛季CBA联赛之广东
日期:2016-01-19 13:33:372015亚冠之山东鲁能
日期:2015-10-13 09:39:062015亚冠之西悉尼流浪者
日期:2015-09-21 08:27:57
7 [报告]
发表于 2009-07-19 16:51 |只看该作者

回复 #1 cxfcxf 的帖子

perl 也有单行的命令,不一定要用脚本。
ps aux | perl -lane 'print "$F[1] $F[2] $F[3]"'

C语言也可以实现所有的功能,为什么还要用shell+awk+sed呢?
更多的时候,并不是看能不能实现,而是要看实现要多大的成本。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2009-07-19 17:09 |只看该作者
原帖由 cjaizss 于 2009-7-19 16:33 发表
flw会说,perl可以解决任何问题..为啥要用shell+awk+sed

论坛徽章:
0
9 [报告]
发表于 2009-07-19 17:18 |只看该作者
感觉中文可以表达任何意思,为啥要学英文

论坛徽章:
0
10 [报告]
发表于 2009-07-19 17:43 |只看该作者
原帖由 cheese_lee 于 2009-7-19 17:18 发表
感觉中文可以表达任何意思,为啥要学英文



如果人的大脑中像安装一个perl软件那样方面的可以植入一个语言解析器。那还真不用学习外语了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP