gpt4 book ai didi

python - Perl、Python、AWK 和 sed 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 12:10:31 25 4
gpt4 key购买 nike

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

最佳答案

按出现顺序,语言是sedawkperlpython

sed 程序是一个流编辑器,旨在将脚本中的操作应用到输入文件的每一行(或更一般地说,应用到指定的行范围)。它的语言基于 Unix 编辑器 ed,虽然它有条件等,但很难用于复杂的任务。你可以用它创造小奇迹——但要付出你头上的头发的代价。但是,在尝试其职权范围内的任务时,它可能是最快的程序。 (在讨论的程序中,它的正则表达式功能最弱 - 足以满足许多目的,但肯定不是 PCRE - Perl-Compatible Regular Expressions)

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

Perl 部分是作为 awk-killer 和 sed-killer 编写的。它提供的两个程序是 a2ps2p,用于将 awk 脚本和 sed 脚本转换为 Perl。 Perl 是最早的下一代脚本语言之一(Tcl/Tk 可能占据主导地位)。它具有强大的集成正则表达式处理和更强大的语言。它提供对几乎所有系统调用的访问,并具有 CPAN 模块的可扩展性。 (awksed 都不是可扩展的。)Perl 的座右铭之一是“TMTOWTDI - Theres more than one way to do it”(读作“tim-toady”)。 Perl 有“对象”,但它更像是一个附加组件,而不是语言的基本部分。

Python 是最后编写的,可能部分是对 Perl 的 react 。它有一些有趣的句法思想(缩进表示级别 - 没有大括号或等价物)。它比 Perl 更基本面向对象;它与 Perl 一样可扩展。

好的 - 什么时候使用每个?

  • Sed - 当您需要对文件进行简单的文本转换时。
  • Awk - 当您只需要简单的格式化、汇总或数据转换时。
  • Perl - 几乎适用于任何任务,尤其是当任务需要复杂的正则表达式时。
  • Python - 用于您可以使用 Perl 的相同任务。

我不知道 Perl 能做什么而 Python 不能,反之亦然。两者之间的选择将取决于其他因素。我在 Python 出现之前就学习了 Perl,所以我倾向于使用它。 Python 具有较少的附加语法,并且通常更易于学习。当 Perl 6 可用时,它将是一个令人着迷的发展。

(请注意,尤其是 Perl 和 Python 的“概述”非常不完整;可以就该主题编写整本书。)

关于python - Perl、Python、AWK 和 sed 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/366980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com