主頁 > 知識庫 > Perl學(xué)習(xí)教程之單行命令詳解

Perl學(xué)習(xí)教程之單行命令詳解

熱門標簽:百度AI接口 硅谷的囚徒呼叫中心 電話運營中心 呼叫中心市場需求 Win7旗艦版 客戶服務(wù) 語音系統(tǒng) 企業(yè)做大做強

前言

本文主要給大家介紹了關(guān)于Perl單行命令的相關(guān)內(nèi)容,分享出來供大家參考學(xué)習(xí),下面話不多說了,來一起看看詳細的介紹吧。

與One-Liner相關(guān)的perl參數(shù)

  • -a 自動分隔模式,用空格分隔$并保存在@F中,也就是@F=split //, $
  • -F 指定-a的分隔符
  • -l 對輸入的內(nèi)容進行自動chomp,對輸出的內(nèi)容自動加換行符
  • -n 相當(dāng)于while(>)
  • -e 執(zhí)行命令,也就是腳本
  • -p 自動循環(huán)+輸出,也就是while(>){命令(腳本); print;}

記住以上幾點參數(shù),幾乎可以開始使用perl來編寫one line命令了

以上為簡介版,下面這張圖可以算是完整版

根據(jù)下面的例子來理解下perl one line

1、基本格式:perl -參數(shù) ‘命令' 輸入文件

2、perl -e為必須要寫的參數(shù)

3、perl -pe 可用于讀取文件每行,并按照給定的命令進行處理,最后輸出;如將文件1.txt中的aaa替換為AAA

perl -pe 's/aaa/AAA/g' 1.txt

4、perl -l參數(shù)幾乎可以跟n搭配代替perl經(jīng)常用的while(>){chomp;}語法

5、如果需要處理tab分割的文件的每一行內(nèi)容,那么perl -alne參數(shù)幾乎可以說是必備的,例如while(>){chomp;@F=split /\s+/,$_;print "$F[0]\n"}相當(dāng)于

perl -alne 'print $F[0]'

6、perl單行命令腳本里的變量都不需要預(yù)先聲明,如想打印出每空行,并且每行以行數(shù)開頭

perl -ne 'print ++$a." $_" if /./'

7、perl單行命令有時優(yōu)于sed/grep等shell命令是由于其優(yōu)秀的正則匹配,通常簡單的匹配可以如:匹配上的行號,模仿grep -c的功能:

perl -lne '$a++ if /regex/; END {print $a+0}'

8、perl單行命令可以使用perl的模塊,如使用sum函數(shù)的模塊:

perl -MList::Util=sum -alne 'print sum @F'

9、perl也可以像awk一樣使用END命令,如打印出文件中總單詞個數(shù)

perl -alne '$t += @F; END { print $t}'

10、perl也可以使用map{}等函數(shù),如打印出匹配上的單詞的總個數(shù)

perl -alne 'map { /regex/  $t++ } @F; END { print $t }'

11、perl單行命令可以說是將perl的簡潔用到了極致,如打印出匹配上的行:

perl -ne '/regex/  print'

12、perl單行命令能像perl一樣靈活的使用則正表達式

perl -ne 'print if /^\d+$/'

以上例子均出自于http://www.catonmat.net/blog/perl-one-liners-explained-part-one/

使用perl來處理數(shù)據(jù)的我們,會一點Perl one line可以有效的減少編寫重復(fù)命令的時間,尤其是那些就用1-2次就不會用的腳本,尤其在window系統(tǒng)下不方便使用shell命令的時候。

PS.當(dāng)然在windows系統(tǒng)下也可以借用git模擬Unix命令環(huán)境~~~~

總而言之,蠻適合學(xué)習(xí)下,多用用

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

您可能感興趣的文章:
  • Perl5和Perl6對比使用Sigils的差別
  • Perl6中的垃圾收集
  • 強大的Perl正則表達式實例詳解
  • Perl中的符號 ->;、=>; 和 :: 分別表示什么意思?
  • Perl中常見符號與操作
  • Perl時間處理函數(shù)用法介紹
  • Perl字符串處理函數(shù)大全
  • 詳解linux下批量替換文件內(nèi)容的三種方法(perl,sed,shell)
  • Perl與JS的對比分析(數(shù)組、哈希)
  • 使用Perl生成隨機密碼
  • ASP.NET中HyperLink超鏈接控件的使用方法
  • 將Perl5代碼遷移到Perl6上的解決方案

標簽:崇左 山西 濟南 喀什 安康 長沙 山西 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Perl學(xué)習(xí)教程之單行命令詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266