您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Perl,Python,AWK和sed有什么区别?

Perl,Python,AWK和sed有什么区别?

在出现的顺序,语言是sedawkperlpython

sed程序是一个流编辑器,旨在将脚本中的操作应用于输入文件的每一行(或更一般而言,应用于指定的行范围)。它的语言基于edUnix编辑器,尽管它具有条件等,但是很难处理复杂的任务。您可以用它创造一些小奇迹- 但要花很多钱。但是,当尝试在其权限范围内执行任务时,它可能是最快的程序。(它具有所讨论程序的功能最弱的正则表达式-足以满足许多目的,但肯定不是PCRE- 与Perl兼容的正则表达式)

awk程序(以其作者的名字缩写命名- Aho,Weinberger和Kernighan)最初是用于格式化报告的工具。它可以用作汤sed。在最新版本中,它在计算上是完整的。它使用了一个有趣的想法- 该程序基于“模式匹配”和“模式匹配时采取的动作”。这些模式非常强大(扩展正则表达式)。动作的语言类似于C。的主要功能之一awk是它将输入自动分为记录,每个记录又分为字段。

Perl的一部分是awk杀手和sed杀手。提供它的程序中的两个a2ps2p转换awk脚本和sed脚本转换为Perl。Perl是下一代脚本语言中最早的一种(Tcl / Tk可能声称是首要的)。它具有功能强大的集成正则表达式处理功能,并且语言功能强大得多。它提供对几乎所有系统调用的访问,并具有CPAN模块的可扩展性。(既不是可扩展的,awk也不sed是可扩展的。)Perl的座右铭之一是“ TMTOWTDI-做到这一点的方法不止一种”(发音为“ tim-toady”)。Perl具有“对象”,但它不仅仅是语言的基本组成部分,而是附加组件。

Python是最后编写的,可能部分是对Perl的反应。它具有一些有趣的句法概念(缩进以指示级别- 无花括号或等效项)。从根本上说,它比Perl更面向对象。它与Perl一样可扩展。

OK-什么时候使用每个?

我不知道Perl可以做Python无法做到的任何事情,反之亦然。两者之间的选择将取决于其他因素。我在没有Python之前就学习了Perl,所以我倾向于使用它。Python的语法较少,而且通常更易于学习。Perl 6上市后,将是一个引人入胜的发展。

(请注意,尤其是Perl和Python的“概述”还很不完整;整本书都可以写成该主题。)

python 2022/1/1 18:30:43 有199人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶