免费注册 查看新帖 |

Chinaunix

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

新人学bash,谈bash效率 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-08 23:33 |只看该作者 |倒序浏览
参加了LINUX培训,最近新学SHELL编程,严格来说应该是BASH编程.以前总觉得这些编程都一样的,一样的结构,一样的分支,循环.但实际拿BASH 来做事的时候才知道,一样的语句,执行起来,简单天上地下!
首先来说个简单的例子,time awk 'BEGIN{for(i=0;i<100000;i++){print "helloworld"}}' 这个6秒多 ,用BASH的FOR循环要8秒,用PERL,0.8秒.一样的结果 一样的代码,执行起来差别很大.再说我们用来做事,处理APACHE的
日志.apache的日志要导入到MYSQL里做统计,就要处理,调整下顺序,把英文的月份改成中文的,老师只给了我们500M的一个日志.叫我们处理,老师的写法是AWK 排序管道给SED 替换.我用了WHILE READ 处理 中间用的SED处理,可我的处理的速度是每分钟处理2M.我去问老师的要多长时间,他的处理完只要了50多秒.这个差别太大了,最后我只用AWK处理了下,只用了40多秒.论坛上有人提出个面试题,一个2G的文件,找出里面出现单词最多的前10个,这个问题我一直在想,以前想的是用BASH 现在我已经不这么想了,那是不可能实现的,论坛上很多人写出了自己的代码,无非AWK ' '|SED ''|SORT|UNIQ |SORT  这样的形式,awk,sed行处理的,处理多大文件都没问题 ,但SORT不行了吧,我SORT 40M的文件用了 7分钟,2G要多长时间?
所以我想说谈SHELL(BASH)编程只是个笑话,BASH连最基本的正则表达式都解释不了,还要靠老牌的AWK,SED,GREP,仔细看看系统自带的最大的脚本RC.sysinit.如果去掉里面的AWK,和SED,你看看这个脚本还有什么,只是一堆命令序列而已,与编程有什么关系呀!SHELL就是SHELL,就是命令解释.编程还是学专门的编程语言吧.

论坛徽章:
0
2 [报告]
发表于 2010-06-09 07:52 |只看该作者
本帖最后由 ywlscpl 于 2010-06-09 07:56 编辑

每一本shell编程书籍中都有几块内容: awk sed grep ...

我觉得是概念问题,什么是狭义的shell编程,什么是广义的shell编程。
如果只从字面上理解shell编程,只能用shell的内部命令,不准使用任何外部命令,我认为这是狭义的shell编程。
本人所认为的shell编程是广义的shell编程,可以使用所有系统自带和安装的外部命令,包括awk、sed、grep、sort....,当然,也包括perl

论坛徽章:
0
3 [报告]
发表于 2010-06-09 09:17 |只看该作者
1: 学习linux还要上培训班,学习shell还要上培训班, 浪费时间和money.

2:动辄就是500M, 2G的文件,你这是高考吧,专门出难题来折磨人,shell的主要应用时日常小应用,以及把多个命令串在一起组成小脚本实现自动化处理,不是主要来处理什么500M,2G大文件的。

论坛徽章:
0
4 [报告]
发表于 2010-06-09 09:23 |只看该作者
shell 脚本 主要的任务是用来完成系统管理工作!

非要去搞什么项目的话,最好去选程序开发语言。

新人学shell,应该搞清楚目的,任何一种脚本语言都有自己的长处、短处。动不动就谈效率,请问,你到底有少实际经验?如果还不是很熟悉你对比的语言,就别轻易下结论。

切忌浮躁!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
5 [报告]
发表于 2010-06-09 09:23 |只看该作者
参加了培训班就是不同,什么时候我也去上上。

严重同意楼主观点,shell不是什么好东西,没有什么学的,不就是命令吗?

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
6 [报告]
发表于 2010-06-09 09:25 |只看该作者
今年是CU效率年?

论坛徽章:
0
7 [报告]
发表于 2010-06-09 09:34 |只看该作者
哈哈~黑哥又误导新人了~

论坛徽章:
0
8 [报告]
发表于 2010-06-09 09:53 |只看该作者
回复 7# iori809


   9494,黑哥,什么时候误导一下旧人嘛

论坛徽章:
0
9 [报告]
发表于 2010-06-09 09:56 |只看该作者
按理说,汽车的效率是要高于走路的,可如果我上班也开车的话,肯定天天迟到,因为公司离家近,走路5分钟,开车反而要走弯路10分钟也到不了

论坛徽章:
0
10 [报告]
发表于 2010-06-09 09:58 |只看该作者
楼主说得好!高!顶!
学什么效率低的BASH、perl之流,去学汇编,不!还是学机器语言吧,效率高啊!绝对符合楼主的效率要求~~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP