您的位置:首页 > 运维架构 > Shell

浅析shell+sed+awk和perl和python

2008-09-21 17:51 176 查看
最近在linux下工作时,越来越觉得迫切需要掌握一门脚本语言,于是开始选择到底学什么?现在比较流行的脚本语言中,perl和python的呼声最大,所以一直不知道该学那一个。今天在网上查了一下,看到这篇博客觉得挺有帮助,故和大家分享一下。

原文:shell+sed+awk和perl和python的区别
地址:http://blog.csdn.net/annicybc/archive/2008/04/19/2308146.aspx

最近开始学习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 等命令
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: