GVKun编程网logo

Perl、Python、AWK 和 sed 有什么区别?(sed grep awk区别)

13

想了解Perl、Python、AWK和sed有什么区别?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于sedgrepawk区别的相关问题,此外,我们还将为您介绍关于Java、JavaScr

想了解Perl、Python、AWK 和 sed 有什么区别?的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于sed grep awk区别的相关问题,此外,我们还将为您介绍关于Java、JavaScript、C、C++、PHP、Python有什么区别?、Linux 系统中 awk 和 sed 有什么区别?、Perl,Python,AWK和sed之间有什么区别?、Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】的新知识。

本文目录一览:

Perl、Python、AWK 和 sed 有什么区别?(sed grep awk区别)

Perl、Python、AWK 和 sed 有什么区别?(sed grep awk区别)

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

Java、JavaScript、C、C++、PHP、Python有什么区别?

Java、JavaScript、C、C++、PHP、Python有什么区别?

用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令;

所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了。

今天大雄就来给大家说下面这几门语言都是干什么的?

01 C和C++

C/C++理论上说可以做任何开发, 只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。

除非系统中连C/C++编译器都不具备.,某些系统C++编译器是不具备的, 但是C一般都具备。

目前而言, C语言主要用来开发底层模块(比如驱动,解码器,算法实现), 服务应用(比如web服务器)和嵌入式应用(比如微波炉里的程序).。

C++也可以做这些, 不过由于C++的复杂性和标准问题, 大家普遍还是更愿意使用C来做。

C++更适合比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用。

用途:

C:系统底层, 驱动, 嵌入式开发

C++: 游戏开发, 大规模, 高性能, 分布式要求的程序开发。

02 Java

Java常常跟”企业”联系在一起, 因为具备一些很好的语言特性, 以及丰富的框架。在企业应用中最被青睐。

同时, Java在手机领域也有一席之地, 在普遍智能化之前, 很多手机就是以支持Java应用作为卖点的, 而智能手机爆发之后, Java手机主场变成了android, 作为安卓的标准编程语言而存在。

用途:

Java用于网页, 企业级开发, 普通应用软件, 游戏后台。

03 JavaScript

Javascript听起来好像跟Java有关系, 其实并没有任何关系, 只是名字像而已。就好比雷峰塔和雷锋的关系一样,虽然只差一个字。

Js最广泛的应用毫无疑问是在web前端。

简单的说, 网站传过来的是一堆用各种标签表示格式的文档, 而Js负责操纵这些文档实现一些客户端动态效果.。

Js的领地还不仅如此, 现在的Node.js还可以用于服务器端的开发。

用途:

JavaScript是浏览器的脚本语言,一般和Html,CSS这些一起学,主要做网站的前端开发,展现各种酷炫的画面。

04 PHP

PHP这三个字我们常常会在浏览器地址栏里看到, 所以不意外PHP是用来开发网站的,也是web后端的王者语言,无数的网站后端都运行着PHP代码。

用途:

PHP:主要是网络前端,用于生成网页。也可以整个web服务器都用PHP,比如很多论坛引擎。

05 Python

Python由于具有丰富和强大的库,它又叫做胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写;

比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。

用途:

Python是做服务器开发与物联网开发。信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。

Python:动态解释型,开发效率高,开源,灵活,入门门槛低。

怎么样?现在这几门语言的区别,以及他们分别都是用来干什么的,小伙伴们应该都有所了解了吧。

小伙伴对哪门语言最感兴趣呢?欢迎大家和我一起来讨论哦

Linux 系统中 awk 和 sed 有什么区别?

Linux 系统中 awk 和 sed 有什么区别?

  Linux 文本三剑客,即 awk、grep、sed,这三个命令是 Linux 中常用的文本处理命令,主要作用是对文本内容做查看、修改等操作,那么 Linux 系统中 awk 和 sed 有什么区别?相信很多人都比较好奇,小编通过这篇文章为大家介绍一下。

  Linux sed 命令是利用脚本来处理文本文件。sed 可依照脚本的指令来处理、编辑文本文件。sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。

  Linux awk 命令是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位创始人 Alfred Aho、Peter Weinberger 和 Brian Kernighan 的 Family Name 的首字符。

  主要区别如下:

  1、sed 是一种非交互式且面向字符流的编辑器,awk 则是一门模式匹配的编程语言,因为它的主要功能是用于匹配文本并处理,同时它有一些编程语言才有的语法,例如函数、分支循环语句、变量等等,当然比起我们常见的编程语言,AWK 相对比较简单。

  2、sed 一般对行进行操作,awk 对列进行操作。

  3、sed 擅长数据修改,awk 擅长数据切片,数据格式化,功能最复杂。

  4、sed 全称 Stream Editor,擅长对文件做数据做修改的操作,非常高效。

  5、awk 更适合格式化文本,对文本进行较复杂格式处理,awk 程序对输入文件的每一行进行操作;awk 是一门解释型的编程语言,文本处理、输出格式化的文本报表、执行算数运算、执行字符串操作等等。

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

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

只是想知道他们之间的主要区别是什么?和每种语言的力量(最好使用它)。

编辑:它不是“对”喜欢的主题,只是信息。

解决方法

按照外观的顺序,语言是sed,awk,perl,python。

sed程序是流编辑器,并且被设计为将来自脚本的动作应用于输入文件的每一行(或者更一般地,应用于指定的行范围)。它的语言基于ed,Unix编辑器,虽然它有条件等,但是很难与复杂的任务一起工作。你可以与它工作小奇迹 – 但是在你头上的头发成本。但是,它可能是在其职权范围内尝试任务时最快的程序。 (它具有所讨论的程序中最不强大的正则表达式 – 适用于许多目的,但肯定不是PCRE – Perl兼容的正则表达式)

awk程序(来自作者的首字母缩写的名字–Aho,Weinberger和Kernighan)是最初用于格式化报告的工具。它可以用作汤羹;在其更新的版本中,它是计算完成的。它使用一个有趣的想法 – 程序是基于“模式匹配”和“模式匹配时采取的行动”。模式是相当强大的(扩展正则表达式)。操作的语言类似于C. awk的一个关键功能是将输入行自动分割为字段。

Perl被部分地写成awk-killer和sed-killer。提供的两个程序是a2p和s2p,用于将awk脚本和sed脚本转换为Perl。 Perl是下一代脚本语言中最早的一种(Tcl / Tk可能声称优先)。它具有强大的集成正则表达式处理与更强大的语言。它提供对几乎所有系统调用的访问,并且具有CPAN模块的可扩展性。 (awk和sed都不可扩展。)Perl的座右铭之一是“TMTOWTDI – 有多种方法”(发音为“tim-toady”)。 Perl有“对象”,但它更多是一个附加组件,而不是语言的基本部分。

Python是最后写的,可能部分作为对Perl的反应。它有一些有趣的句法思想(缩进表示水平 – 没有大括号或等同)。它比Perl更基本的面向对象;它就像Perl一样可扩展。

确定 – 何时使用每个?

> sed – 当你需要对文件进行简单的文本转换。
> awk – 当你只需要简单的格式化和汇总或转换数据。
> perl – 几乎任何任务,但特别是当任务需要复杂的正则表达式时。
> python – 对于可以使用Perl的相同任务。

我不知道任何Perl可以做的Python不能,反之亦然。两者之间的选择将取决于其他因素。我学习了Perl之前有一个Python,所以我倾向于使用它。 Python有更少的accreted语法,通常有点更容易学习。 Perl 6,当它可用时,将是一个迷人的发展。

(请注意,特别是Perl和Python的“概述”是非常不完整的;整本书可以写在这个主题上。)

Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】

Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】

从本文的内容上,写的时间比较早,而且有些术语我认为也不太准,有点口语化,但是意思到了。 问题: Perl、Python、Ruby 和 PHP 各自有何特点? 为什么动态语言多作为轻量级的解决方案? LAMP 为什么受欢迎? Ruby on Rails 为什么会流行? 编程语言的发展趋

从本文的内容上,写的时间比较早,而且有些术语我认为也不太准,有点口语化,但是意思到了。

问题:

  • Perl、Python、Ruby 和 PHP 各自有何特点?

  • 为什么动态语言多作为轻量级的解决方案?

  • LAMP 为什么受欢迎?

  • Ruby on Rails 为什么会流行?

    立即学习“PHP免费学习笔记(深入)”;

  • 编程语言的发展趋势是什么?

 

“剩下四种动态语言,我们将之归为后台脚本语言。”冒号说着,画了张图表——

Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】

引号听得仔细,说:“我记得你之前把这些语言划分为 C 族静态语言、非 C 族静态语言和动态语言三类的。”

冒号解释:“那是按语法来划分的,偏重理论;现在是按应用来划分,偏重实践。”

句号立刻联想到:“这种分法貌似三层架构——前台语言对应表现层;平台语言和后台脚本语言对应业务逻辑层;系统语言对应数据层。”

“的确有几分神似,但千万不能混淆。”冒号提醒道,“三层架构是模块设计上的逻辑划分;而这里是按语言应用范围进行的物理划分——与用户交互的是前台语言,与机器交互的是系统语言,介于其中的为前台提供服务同时又需要底层系统服务的是后台语言。”

逗号,询问:“后台语言,又细分成平台语言与后台脚本语言?”

“这是基于程序与脚本、静态与动态而分的。”冒号说明,“其实 Perl,PHP,Python 和 Ruby 都有自己的虚拟机,从这种意义上,它们也可作为平台语言。但在实际应用中,它们没有 Java 平台和 .NET 平台那种整合凝聚力和核心作用,通常作为轻量级的解决方案。”

问号,想探个究竟:“这是由于它们都是动态语言的缘故吗?”

冒号,回答:“理论上动态语言同样能承担大型应用,但实践上它们多作为“胶水”语言或用于中小型应用。用句时髦的话来形容,暂时还是主流的配角或非主流的主角。毕竟在运行效率、类型安全、可用资源、开发工具、技术支持等方面,与 Java、C# 相比尚有一定差距。另外它们同属‘草根’语言,虽有开源社区的大力支持,在影响力上与后者不可同日而语。”

叹号,揣测:“说不定,在不久将来,动态语言也会成为主流的。”

“世易时移,殊难逆料。但有一点可以肯定,语言的发展趋势一定是动静结合、刚柔并济。”冒号断言,“一方面,以 Java 和 C# 为代表的静态语言中嫁接了动态语言的枝条;另一方面,以 Java 和 .NET 为代表的平台与动态语言的交壤地带也在逐步扩大。比如,JRuby 允许 Ruby 与 Java 之间互相调用,还有 Jython、IronRuby、IronPython 等。值得一提的是,动态语言最活跃的舞台当数 LAMP,L-A-M-P。”

引号,接过话茬:“L 是 Linux,A 是 Apache,M 是 MySQL,P 是 PHP。这四大组件形成了一个完整的开源网络开发平台。”

冒号,补充道:“P 也可指 Perl、Python,甚至 Ruby。”

逗号,调侃:“可惜 Ruby 的‘R’比‘P’多了一根尾巴。”

“有人为了自圆其说,干脆让 P 表示‘Programming language’,这下所有语言都囊括其中了。老外就喜欢玩这种首字母缩写的文字游戏,尤其是 LAMP 正好还有‘灯’的含义,寓意开源世界是一盏明灯,他们一定更得意了。”冒号边说边笑道,“前面我们曾提及,网络应用是生长动态语言最肥沃的土壤,而 LAMP 就是这块土壤上搭建的平台。作为网络平台,LAMP 以其开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优势而与 Java 平台和 .NET 平台三足鼎立,特别受中小企业的欢迎。LAMP 中,Linux 是操作系统,Apache 是 Web 服务器,MySQL 是数据库系统,而我们当下最关心的是‘P 族语言’:PHP、Perl、Python 还有 Ruby。”

问号,建议:“作为动态语言,它们的共性上面已经谈了不少,能说说它们的个性吗?”

“它们的个性极为鲜明:Perl 凝练晦涩,Python 优雅明晰,Ruby 精巧灵动,PHP 简明单纯。先看老大哥 Perl,它博采众家之长,综合了 C 语言的结构、sed 的正则表达式、AWK 的关联数组(associative array)、Lisp 的表(list)和 Unix Shell 的命令,此外,它还借鉴了一种语言,你们知道是哪种吗?”冒号忽然卖起了个关子。

逗号,猜想:“应该是某种 OOP 语言吧。”

“Perl 中确有不少 C++ 的影子,但它的对象模型在 5.0 以后才引入,典型的半路出家,远不如前面的特征那么自然。与其说是一种自然而然的发展,不如说是在 OOP 潮流裹挟下的一种身不由己的迎合。真正深入骨髓的借鉴是自然语言。”冒号,给出了答案,“我们提过,Perl 发明者 Larry Wall 是一名语言学家,他认为程序语言应该与自然语言一样,简洁自然、易读易写、表达多样、不拘一格。Perl 还有不少的格言或哲学,使得编程语言一改严谨刻板的面孔,散发出浓郁的人文气息。”

叹号幽了一默:“我见过 Perl 代码,人文气息没闻出来,但我怀疑有乙醚气息——看一会就觉得晕晕乎乎的。”

众人大笑……

“有人仅用一行 Perl 代码就实现了 RSA 算法,你看了那还不得当场晕倒啊?”冒号打趣道,“Perl 各种魔符好似一把锋利的剪刀,做起文本裁剪之类的工作游刃有余。这是它最大的长处,当初 Perl 就是 Wall 用来做 Unix 系统管理的,以后在 CGI 上的广泛应用也得益于此。这也赋予 Perl 极强的粘合力,因而有‘internet上的胶带(duct tape)’的说法。它又号称瑞士军刀,精练而复杂,实用而强大。但Perl过于灵活自由,缺乏规范,影响了程序的可读性、一致性、整洁性和可维护性。不熟悉该语言的固然如读天书,熟悉语言而不熟悉问题的也颇费思量。相比之下,Python 被认为是 Perl 有力的挑战者,不仅在于它天然的 OO 设计和丰富的类库,更重要的是它的友好度大大超过 Perl。Python 也有一系列的被称为禅(Zen)的哲学,不少与 Perl 针锋相对。比如,Perl 认为做一件事可以有多种方法,而 Python 认为一件事应该最好只有一种方法;Perl 追求语言的表现力,Python 追求简单优雅;Perl 喜欢隐性暗示,Python 强调显性明示;Perl 强调紧凑,Python 强调松散;Perl 语法和语义丰富,Python 语法和语义简单,类库丰富。或许 Python 最让人不习惯的是它对空白符敏感性。”

引号,感到惊奇:“对空白符敏感?这个倒真怪异。”

冒号,见怪不怪:“虽然有点违反习惯,但非常符合 Python 一贯的规范简洁的风格——一方面,从语法上,保证了良好的编码风格;另一方面,每个代码块不再需要起始的大括号或 begin/end 之类,减少了的代码行数。顺便提一句,另外一种优雅的语言 Haskell 同样对空白符敏感,或许优雅正是来自对细节和规范的重视吧。此外,许多人抱怨 Python 中的自引用 self 太多,殊不知这也是它倡导显式表达的一种体现。总的看来,Python 主要的问题还是在性能效率上不尽如人意。”

叹号,好奇地问:“Ruby 怎么样?据说它将取代 Java。”

“不要轻言‘取代’二字。”冒号说道,“Java 没有取代 C++,也不会被 Ruby 取代,顶多是再分配。不过 Ruby 的确是门很可爱的语言,兼具 Perl 的表现力和 Python 的可读性。Ruby 背后最具特色的理念是:关注程序员使用语言时的感受超过语言本身的功能。通俗地说,上手的兵器比锋利更重要;文雅地说,应给予程序员更多的人文关怀。拿代码块(block)和迭代器(iterator)来说,虽然这不是 Ruby 首创,但其语法最为赏心悦目。Ruby 元编程能力特别强,也是它高度灵活的一种体现,但并不是所有人都喜欢这种风格。Ruby 主要弱点有两个:一个与 Python 类似,在性能上还有待提高;另一个是它的线程由用户空间(user space),而不是内核空间(kernel space)来管理,不能充分利用多核或多 CPU。真正让 Ruby 变得炙手可热的是 Web 应用框架 Ruby on Rails(RoR)的成功,它们还催生了 Java 平台上的 Groovy 语言和 Groovy on Grails 框架。RoR 奉行的 CoC(Convention over Configuration)和 DRY(Don’t repeat yourself )原则以及 MVC 架构看似了无新意,但与 Ruby 结合之后,便如一只猱身而上灵猫,立刻衬托出 Java 和 .NET 大象般的身影。”

逗号,有些怀疑:“框架竟然捧红了语言,框架真有这么重要吗?”

“如果 Web 应用中动态页面较少或业务逻辑不复杂,框架的价值并不大。以前 CGI 编程就是往 Perl 之类的代码中嵌入HTML代码,如同 Java 中的 Servlet;PHP 则单纯地在 HTML 代码中插入 PHP 代码,如同早期的 JSP。没有 MVC,也不管什么三层架构,更没有 ORM。但是——”冒号拖了个转折音,“一旦业务逻辑变得复杂,开发人员增多,手工作坊式编程开始捉襟见肘,引入框架这个流水生产线来提高生产力便是大势所趋。”

句号,不解:“我想 Perl、Python 和 PHP  一定也有不少框架,Java中的框架更是泛滥成灾,何以独独 RoR 脱颖而出?”

冒号,分析道:“正值 Web 2.0 和敏捷开发的概念流行之际,RoR 将 AJAX 与 Ruby 组合在一起成为绝佳的回应。以前各种 Web 应用框架是不少,但在 RoR 之前轻量级套餐式解决方案并不多。Perl 中 Catalyst、Python 中 Pylon,还有 PHP 中 CakePHP 等应是效仿之作。因此,RoR 出现的时机可说正当其时。此外,Perl 和 PHP 由于过于流行,反而有不少的历史包袱,人们习惯了将表示逻辑和业务逻辑编织在一起。至于 Java 企业解决方案,框架太多,搭配组合更多,增加了选择的难度。即使采用最常见的轻量级 SSH(Struts+Spring+Hibernate)组合,维护起来也比 RoR 繁杂得多。”

叹号,愈发担忧:“听这意思,Java 还是危险啊!”

“言之过早。”冒号不以为然,“首先,RoR 还有待进一步检验,目前无论是应用广度还是深度上尚无法与 Java 相提并论;其次,Java 在性能、安全等方面还是有不少优势,而这些对于大型和关键性的应用来说尤为重要。即使在中小型 Web 应用中,RoR 较之 PHP 还远为不及。”

问号接下话题:“PHP为何如此流行?”

“因为它简单、专一。”冒号答得很干脆,“与 Python 和 Ruby 一开始就定位通用语言不同,PHP 是专为网络而生的。同早期的 Perl 相似,PHP 起初主要起文本过滤器的作用,只不过 Perl 多处理文件流,而 PHP 多处理套接字流。PHP 语法简单,为网络应用度身定造,受到网络开发人员的追捧当在情理之中。它虽很实用很流行,但并不完美。比如,变量名大小写敏感,而函数名大小写不敏感;函数命名规则不一致;不支持 namespace 和 unicode;与 Perl 一样,它的对象模型不是先天的,直到 PHP 5 才真正完善;对线程支持不足;相比 Perl、Python 和 Ruby,它的功能稍显单薄等等。”

引号,突然想起:“我记得你以前提到,PHP 还能用于桌面应用。”

“不仅 PHP,Perl、Python 还有 Ruby,都能作为前台语言来开发命令行或图形界面的应用。同样地,VB、Delphi 和 JavaScript 也能作为后台语言。现代的程序语言既有自己的专长,又向通用化和全能化发展,以争取更多的生存空间。试想一下,现代的程序员又何尝不是如此呢?”言及于此,冒号收住话题,“语言简评告一段落,还有不少既有趣又有用的语言,在此就不一一评说了。我们看到,每种编程语言都有其独特的惯例用法和哲学理念,它们与编程范式一道形成了语言的编程风格。体悟愈深者编程语感愈强,思维与语言愈交融无碍,渐从必然王国走向自由王国。”

逗号,满怀憧憬:“那是不是一种人剑合一的境界?”

“或许人器合一更准确吧,程序员可不能只会一种兵器哟。”冒号故意抠他的字眼,“现在请大家每人写一句对本节课的感言。”

众人沉思片刻,齐齐挥笔而就——

  • 叹号——没有最好的语言,只有最合适的语言。
  • 逗号——没有糟糕的语言,只有糟糕的程序员。
  • 问号——没有一种语言是万能的,只会一种语言是万万不能的。
  • 引号——废除对语言的宗教信仰,建立对语言的哲学思维。
  • 句号——编程就是在人脑和电脑之间寻找最佳平衡点的过程。

冒号读罢大悦,顺手一掌拍出五记马屁:“精彩之极!可谓字字珠玑、句句联璧啊。兹决定,给诸位的奖赏是——立时下课!”

众人欣然领赏而去。

总结

  • 比起 Java 平台和 .NET 平台,动态语言轻便灵活、开发效率高,但整合凝聚力不够,在运行效率、类型安全、可用资源、开发工具、技术支持以及影响力等方面也有一定差距,故通常作为轻量级的解决方案。
  • LAMP 是由 Linux、Apache、MySQL 和包括 PHP、Perl、Python 或 Ruby 在内的脚本语言组成的网络开发平台,具有开放灵活、开发迅速、部署方便、高可配置、安全可靠、成本低廉等优点。
  • Perl 精练、复杂、强大、灵活、自由、隐晦、表现力强,但规范性、可读性、一致性、整洁性和可维护性较差。
  • Python 优雅规范、简洁明晰、易学易用、类库丰富,但效率稍差,有些人不喜欢它对空白符敏感的特性。
  • Ruby 语法精巧、高度灵活,兼具 Perl 的表现力和 Python 的可读性,尤其注重程序员的感受,但其性能和线程模型尚有待改进。
  • PHP 简单、专一、实用、流行,在但相比其他三种语言,在语法和功能上稍有欠缺。
  • RoR 是一种轻量级套餐式的web应用解决方案,是由好的设计(MVC架构和CoC、DRY原则)加上好的语言(Ruby)在好的时机(Web2.0和敏捷开发风行之际)打造出的好的框架。
  • 静态语言与动态语言从语言特征到运行环境都在逐渐融合。
  • 程序员应该与程序语言一样,既要有自己的专长,又要向通用化和全能化发展。
  • 编程语言惯例用法、哲学理念和编程范式形成了语言的编程风格。

我们今天的关于Perl、Python、AWK 和 sed 有什么区别?sed grep awk区别的分享已经告一段落,感谢您的关注,如果您想了解更多关于Java、JavaScript、C、C++、PHP、Python有什么区别?、Linux 系统中 awk 和 sed 有什么区别?、Perl,Python,AWK和sed之间有什么区别?、Perl、PHP、Python、Java 和 Ruby 比较【转载+整理】的相关信息,请在本站查询。

本文标签: