最近在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 等命令