Perl入門一,通過shell執行perl語句

來源:互聯網
上載者:User

前言     

根據《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* 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.