序言:我为什么学Perl
曾经,我熟练操作grep、awk、sed,甚至自认对sed尚算精通,我一度爱上了写脚本。但是随着写脚本的次数多了,需求复杂了,我深深的感受到shell的无奈。
例如,我多次遇到过类似下面这种恶心的需求:
sed ... | awk ...
其中sed要操作第2到第5行,同时awk要操作中间的第3行,在awk操作第3行的时候,sed的第2行不能丢弃。
对于shell管道来说这是不可能实现的(注:合理使用while read line能实现),因为它通过管道在各命令之间传递数据,这使得管道前面的数据必须传递给管道后面,而数据一被管道传递就从管道左边程序的缓存中消失了,也就是不可重用了。
于是我学了Perl,在这之前我也学了python,但是学过Perl之后,在我觉得shell难以实现的时候,我的第一想法几乎总是使用Perl去实现脚本,而不是用python。
本文我要分享的是一行式Perl程序,它完全可以替代grep+sed+awk,且功能还更强大。文章篇幅稍大,可算是一本较薄的书,但除了专门的perl正则表达式之外(如果没有学过编程语言的正则的话。我也写过一篇非常详细又0基础友好的Perl正则,如有需求,可参见Perl正则表达式超详细教程),其它的都绝对基础,我解释的也足够简单,只要认真看,它真的比awk更简单。按照我现在的感受,我花上几天时间去深入掌握awk,真不如去学Perl一行式。
Perl一行式系列文章:Perl一行式程序
如果觉得文章不错,请帮忙点下右下角的赞。感谢!!!
序言:我为什么学Perl的更多相关文章
- 边看MHA源码边学Perl语言之一开篇
边看MHA源码边学Perl语言之一开篇 自我简介 先简单介绍一下自己,到目前为此我已经做了7年左右的JAVA和3年左右php开发与管理,做java时主要开发物流行业的相关软件,对台湾快递,国际快递,国 ...
- Perl系列文章
0.Perl书籍推荐 Perl书籍下载 密码:kkqx 下面是一些我学习Perl过程中读过完整的或部分章节的觉得好的书. 入门级别1:<Perl语言入门>即小骆驼 入门级别2:<In ...
- 精通Perl(第2版)
精通Perl(第2版)(通往Perl大师之路必读经典书籍,体现了一种编程思维,能够帮你解决很多实际的问题) [美]brian d foy(布瑞恩·D·福瓦)著 王兴宇 刘宸宇 译 ISBN 978 ...
- perl 语法速查
同时学perl.python和shell脚本会很容易将它们的语法搞混,本文主要是一个个人的总结,方便要用时的查询. perl基本语法.安装.帮助文档 文件头格式: #!/usr/bin/perl us ...
- 关于学习Perl
Perl是一门很有用的语言,可以用它来做很多事.然而,它也仅是一门语言,掌握了Perl,你只是掌握了Computer领域的一小块知识.在学习Perl前,请明确你的学习目的,并采用正确的学习方法和资源. ...
- 个人对现在大众对perl的偏见的一些见解
最近我都在一些论坛和交流社区学习,发现很多人对perl有很大的偏见. 以我学习那么久的Perl来说吧,也算是有一些小经验了,所以我总结了大家对perl的偏见的原因,无非就是是下面两个的两个原因: 1. ...
- Perl正则表达式超详细教程
前言 想必学习perl的人,对基础正则表达式都已经熟悉,所以学习perl正则会很轻松.这里我不打算解释基础正则的内容,而是直接介绍基础正则中不具备的但perl支持的功能.关于基础正则表达式的内容,可参 ...
- Perl基础速成
本文是针对没有Perl基础,但想用perl一行式命令取代grep/awk/sed的人,用于速学Perl基础知识. Perl一行式系列文章:Perl一行式程序 perl的-e选项 perl命令的-e选项 ...
- perl选项、特殊变量、一些函数参考手册
perl一行式程序系列文章:Perl一行式 本文用来收集Perl一行式中涉及到的一些选项.特殊变量的说明,可以用来做速查手册. 本文会逐渐更新. 第一次学Perl一行式时,请直接忽略本文内容,并直接从 ...
随机推荐
- HDU 6382 odds (暴力 + 剪枝优化)
odds Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Subm ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...
- U-Boot Makefile分析(4)具体子Makefile的分析
前面分析的都是多数Makefile要读入的文件,这次我们以drivers/mtd/nand/Makefile为例,分析一个具体的子Makefile是如何工作的. 子Makefile的结构是固定的: i ...
- Java工具eclipse控制台console输出乱码问题
捣鼓了一下午,终于tm解决! 我的是Scanner读入,println打印乱码问题. 首先在cmd窗口运行java,是没有乱码问题的,这证明了在cmd窗口时Scanner输入的和println打印的编 ...
- ext__给grid Panel设置绑定事件
使用面板来展示详情信息 1.创建一个面板 (双击添加) 2.给该面板设置itemid的值为:detailPanel 3.给面板设置模板 4.添加下面的内容 id:{id}</br> nam ...
- python图形界面编程
EasyGui(easygui-docs-0.96\tutorial\index.html) import easygui as g import sys while 1: g.msgbox('mes ...
- mysql--user表
mysql数据库 用例:mysql mysql> show tables; +---------------------------+ | Tables_in_mysql | +------- ...
- JavaScript实现页面刷新滚动条位置不变(利用cookie)
实验环境:vs2015 asp.net(C#) 主要原理: 1.在页面滚动时或点击按钮时将当前滚动条位置记录到cookie[pos], 2.页面刷新或重载时查询cookie[pos]中的值是否存在,若 ...
- 自兴人工智能 python特点了解
计算机语言从语言执行分类来看,大概可分为编译型语言(如Java.c++)和解释型语言(如python.javascript) 1.编译型语言 java c++ 编写源代码.java ---> ...
- 制作系统U盘
没有任何宣传软件成分昂,我就是这做的. 1.在百度搜索上搜索“通用PE大师”,点开了这个网站http://up.6615261.cn/index.html,打开之后如下图,下载这个二合一版本 2.在电 ...