国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Perl > 正文

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

2020-06-04 20:32:54
字體:
供稿:網(wǎng)友

前言

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

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

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

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

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

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

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

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

3、perl -pe 可用于讀取文件每行,并按照給定的命令進(jìn)行處理,最后輸出;如將文件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單行命令有時(shí)優(yōu)于sed/grep等shell命令是由于其優(yōu)秀的正則匹配,通常簡單的匹配可以如:匹配上的行號(hào),模仿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命令,如打印出文件中總單詞個(gè)數(shù)

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

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

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

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

perl -ne '/regex/ && print'

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

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

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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 台中县| 翁源县| 上虞市| 裕民县| 栖霞市| 墨玉县| 苗栗县| 若尔盖县| 页游| 海阳市| 定结县| 翼城县| 遂平县| 石家庄市| 济阳县| 松滋市| 南乐县| 自治县| 苗栗县| 玉林市| 西和县| 阿合奇县| 临汾市| 松潘县| 罗源县| 平乡县| 平果县| 金昌市| 侯马市| 五峰| 高雄县| 岗巴县| 贵阳市| 清涧县| 灵石县| 安图县| 襄城县| 平乐县| 磐安县| 美姑县| 历史|