首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Perl、Python、AWK和sed之间有什么不同?

Perl、Python、AWK和sed之间有什么不同?
EN

Stack Overflow用户
提问于 2008-12-14 21:00:05
回答 3查看 85.2K关注 0票数 272

它们之间的主要区别是什么?在哪些典型的场景中,使用每种语言更好?

EN

回答 3

Stack Overflow用户

发布于 2010-05-25 22:52:00

在掌握了几十种语言之后,你会厌倦像S. Lott这样的人(参见他对这个问题的有争议的回答,六年后的反对票数量几乎是up (+45/-22)的一半)。

对于极其简单的命令行管道,Sed是最好的工具。在sed主控程序的手中,它适合于任意复杂性的一次性使用,但是除了非常简单的替换管道之外,不应该在生产代码中使用它。像‘s/this/that/’这样的东西。

当只有一个输入源和一个输出(或顺序写入多个输出)时,Gawk ( GNU awk)是迄今为止复杂数据重新格式化的最佳选择。由于大量的实际工作符合这一描述,并且一个好的程序员可以在两个小时内学会gawk,所以它是最好的选择。在这个星球上,越简单越快越好!

当您有非常复杂的输入/输出场景时,Perl或Python比任何版本的awk或sed都要好得多。从维护和可读性的角度来看,问题越复杂,使用python的效果就越好。然而,请注意,好的程序员可以用任何语言编写可读的代码,而糟糕的程序员可以用任何有用的语言编写难以维护的垃圾,因此,如果程序员熟练而聪明,那么perl或python的选择可以安全地留给程序员的偏好。

票数 98
EN

Stack Overflow用户

发布于 2008-12-14 21:18:47

我不认为sed是一种成熟的编程语言,它是一种具有语言结构的流编辑器,旨在以编程方式编辑文本文件。

Awk更像是一种通用语言,但它仍然最适合文本处理。

Perl和Python是完全成熟的通用编程语言。Perl起源于文本处理,有许多类似awk的构造(甚至有一个awk-to-perl脚本在网络上四处漂浮)。Perl和Python之间有许多不同之处,您最好的办法可能是阅读Wikipedia之类的东西上的这两种语言的摘要,以便更好地掌握它们是什么。

票数 22
EN

Stack Overflow用户

发布于 2010-04-13 21:27:34

何时使用它们: awk - never S. Lott。

我认为S. Lott的这个建议有点不中用。事实是,在Linux和其他UNIX环境中,awk是一个与bash、sh和ksh配合使用的有用工具,可用于快速文本处理。脚本本身的想法是通过将这个工具,那个工具粘合在一起来解决你的问题。因此,在管理脚本中,通常使用ls、grep、|、awk、time、ps等。每个脚本都是一个工具,脚本编写者将它们像构建器一样一砖一瓦地组合在一起,以完成构建(以解决手头的问题)。

例如,我是管理paintball gear supplies网站的团队的成员。这个电子商务站点是基于LAMP堆栈的。为了自动处理和规范化来自不同供应商的数据馈送到后端数据库,我们使用并维护了多样化的脚本组合,包括bash、perl、php,甚至expect。根据可用的模块和API,每种方法都有自己的长处。在bash脚本中,我们根据需要使用awk对模式执行快速模式匹配和适当的操作,而无需切换到PERL。我还想指出的一件事是,在帖子中没有强调的一件事是,这些脚本中有相当一部分是从开源网站购买的,或者是从开源网站获得的。如果脚本以Perl的形式出现,我们将其作为Perl进行维护;如果以Php的形式出现,则以Php的形式进行维护;如果以bash的形式出现,则以bash的形式进行维护;我们不会仅仅因为认为在原始语言中效率较低而用另一种语言重写它。

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/366980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档