设为首页 收藏本站
查看: 720|回复: 0

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

[复制链接]

尚未签到

发表于 2015-4-29 08:30:59 | 显示全部楼层 |阅读模式
  前言     
  根据《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.现在查看文本内容应该已经变了,
       cat testperlreplace
  ---------------------------------------------
    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*

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-61694-1-1.html 上篇帖子: MongoDB学习(三):MongoDB Shell的使用 下篇帖子: Windows Shell 编程(转)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表