加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl入门一,通过shell执行perl语句

发布时间:2020-12-15 23:56:34 所属栏目:大数据 来源:网络整理
导读:Perl 入门一,通过shell执行 perl 语句 时间2013-04-18 15:48:00? 博客园_小文字? 原文 ??http://www.cnblogs.com/avenwu/archive/2013/04/18/3028690.html 前言 ? ?? 根据《 Perl 语言参考手册》介绍, Perl 是? Practical Extraction and Report Language

Perl入门一,通过shell执行perl语句

前言 ? ??

根据《Perl语言参考手册》介绍,Perl是?Practical Extraction and Report Language?的取首字母缩写(?实用报表提取语言?),它是由Larry Wall设计的,并由他不断更新和维护,用于在UNIX环境下编程。

  • Perl具有高级语言(如C)的强大能力和灵活性。事实上,你将看到,它的许多特性是从C语言中借用来的。
  • 与脚本语言一样,Perl不需要编译器和链接器来运行代码,你要做的只是写出程序并告诉Perl来运行而已。这意味着Perl对于小的编程问题的快速解决方案和为大型事件创建原型来测试潜在的解决方案是十分理想的。
  • Perl提供脚本语言(如sed和awk)的所有功能,还具有它们所不具备的很多功能。Perl还支持sed到Perl及awd到Perl的翻译器。

??????简而言之,Perl象C一样强大,象awk、sed等脚本描述语言一样方便

正文

接触Perl是由于看到perl在文本处理上的强悍,百度之后发现网上提到的基本也是用perl来做文本操作,比如在一个文件中替换特定字符串,

perl?-pi?-e?'s/originaltextstring/replacementstring/g' filename

参数-pi?-e的意思不是很清楚,结尾的g表示替换文档中出现的说有匹配,

这句话直接作为shell语句在终端执行或者写在shell脚本中,

下面通过示例来演示一下,

1.新建一个用于测试的文本,输入一些内容

vi testperlreplace

2.文件创建完毕看一下我写了什么内容:

? ? ?cat testperlreplace

-----------------------------------------------

? ? ?test ni da ye?
? ? ?nidayede testtest

----------------------------------------------

3.现在替换其中所有的test为hello,

perl?-pi?-e?'s/test/hello/g' testperlreplace?

4.现在查看文本内容应该已经变了,

---------------------------------------------

hello ni da ye?
nidayede hellohello

---------------------------------------------

补充

?

关于perl?后面的-p,-i,-e代表的含义,google后有个老外解答了这个问题,不知正确性如何:?http://www.linuxquestions.org/questions/programming-9/perl-replace-text-in-file-476382/

?

  • -p 告诉Perl对后面添加的文件名参数进行遍历,大致和sed中的这段代码效果类似

?

while (<>) {?
... # your program goes here?
} continue {?
print or die "-p destination: $!n";?
}

?

我们上面的例子只是一个单独的文件,按着样的话,应该可以跟多个名字,甚至*匹配;

  • ??-i 大致是用来读取文件时进行备份操作。
  • -e?告诉Perl后面跟上perl语句

?-p和-i可以合在一起-pi,-p?-e也可以何在一起,但是-i,-e不能合在一起写-ie,下面的语句表示在所有前缀为testperlreplace的文件中替换test字符串为hello

perl?-pi?-e?'s/test/hello/g' testperlreplace*?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读