PS: 2011-1-25 现在再来看这篇文章,觉得自己以前 真的不懂,竟然在shell和perl之间迷茫,现在才明白,shell+awk+sed精通比学perl更重要,因为他更加的灵活,而且更多的与linux的底层打交道,时间久了,也会提高自己对linux的熟练程度,最终目标达到精通,嗯,现在我的目标很明确了,我要精通shell,什么东西只要精通一个就好了,并不需要太多,求的是质量,关键在于我可以完成需要达到的效果即可。
最近在linux下工作时,越来越觉得迫切需要掌握一门脚本语言,于是
开始选择到底学什么?现在比较流行的脚本语言中,perl和python的呼声最大,所以一直不知道该学那一个。今天在网上查了一下,看到这篇博客觉得挺
有帮助,故和大家分享一下。
原文:shell+sed+awk和perl和python的区别
地址:[url]http://blog.csdn.net/annicybc/archive/2008/04/19/2308146.aspx[/url]
最近开始学习shell+sed+awk,偶然在LinuxSir.Org看到下面这篇网友评论文章,觉得有点
意思,就摘抄到此,让更多需要的人容易看到它!
shell+sed+awk
三者中功能最弱,没有调试程序,大多数
操作必须通过运行其他程序才能执行,所以需要更多时间、内存并在进程表中占有位置。内置的算术运算很有限,数组下标必须是数字等。但它对运行环境要求低,
小巧便捷,是学习系统脚本编程的基础。
Perl
设
计之初就是为了方便编写复杂高效的系统脚本,它也是应该最为广泛的脚本编程语言。它在编程方面相当于瑞士军刀,对字符、文本文件处理能力很强,以前要求
shell+sed+awk+C才能完成的任务,只需perl脚本就可以完成了。而且应用领域一直在拓宽,支持面向对象程序设计。
Python
面
向对象的动态公共语言,适于脚本编程和快速开发,它最显著的特点是作为编译语言(如C)和脚本语言(如perl)之间的桥接语言,它具有的强大功能,可扩
充性及面向对象的特征使其成为大规模应用程序开发工具。
总结
由此可见Perl比
shell+sed+awk更强大,但学习两者并不冲突,通常是学习shell做为脚本编程的入门基础。而Python在应用领域则与前
两者有很大的差别,无太大的可比性。面向不同的任务,可以只需用到其中的一种,也可能三种都要用到,所以究竟该学谁不学谁,需要由面对的任务来决定。
bash - GNU Bourne-Again SHell 类似dos的command,没他你就别想执行命令
gawk - pattern scanning and processing language
主要用于文本相关的处理的编程语言
sed - a Stream EDitor
用于对字符流进行操作
perl - Practical Extraction and
Report Language 一种程序语言,特别用于对字符串处理和作为cgi程序
后三种在linux中是通过bash进行调度执行的
bash你必须用,其他三个要看你的需要了,呵呵
bash、awk、sed、perl
联系是都可以作为 命令解释器
功能大小
大=====〉小
perl /*powerful like ksh, fast, use
widely
awk /*power two, basic using in shell
script, also write awk script
bash, provide user
interface, also provide some command
sed , line
editor oriented lines
perl
是一种很强的编程语言,你几乎可以用它做任何事情,awk 则简单多了,主要用来处理具有一定格式的文件。如果是 shell 编程,awk、sed
等都是不可缺少的工具,当然 perl 完全可以替代 awk、sed、grep 等命令