Perl是一種通用的編程語言,它最初是為文本操作而開發的,現在它可以用于各種系統管理、Web開發等等,下面就讓武林技術頻道和大家一起來學習詳解Perl學習教程之單行命令,希望對你有所幫助!
前言
本文主要給大家介紹了關于Perl單行命令的相關內容,分享出來供大家參考學習,下面話不多說了,來一起看看詳細的介紹吧。
與One-Liner相關的perl參數
記住以上幾點參數,幾乎可以開始使用perl來編寫one line命令了
以上為簡介版,下面這張圖可以算是完整版
根據下面的例子來理解下perl one line
1、基本格式:perl -參數 ‘命令' 輸入文件
2、perl -e
為必須要寫的參數
3、perl -pe
可用于讀取文件每行,并按照給定的命令進行處理,最后輸出;如將文件1.txt中的aaa替換為AAA
perl -pe 's/aaa/AAA/g' 1.txt
4、perl -l參數幾乎可以跟n搭配代替perl經常用的while(<>){chomp;}
語法
5、如果需要處理tab分割的文件的每一行內容,那么perl -alne
參數幾乎可以說是必備的,例如while(<>){chomp;@F=split //s+/,$_;print "$F[0]/n"}
相當于
perl -alne 'print $F[0]'
6、perl單行命令腳本里的變量都不需要預先聲明,如想打印出每空行,并且每行以行數開頭
perl -ne 'print ++$a." $_" if /./'
7、perl單行命令有時優于sed/grep等shell命令是由于其優秀的正則匹配,通常簡單的匹配可以如:匹配上的行號,模仿grep -c的功能:
perl -lne '$a++ if /regex/; END {print $a+0}'
8、perl單行命令可以使用perl的模塊,如使用sum函數的模塊:
perl -MList::Util=sum -alne 'print sum @F'
9、perl也可以像awk一樣使用END命令,如打印出文件中總單詞個數
perl -alne '$t += @F; END { print $t}'
10、perl也可以使用map{}
等函數,如打印出匹配上的單詞的總個數
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來處理數據的我們,會一點Perl one line可以有效的減少編寫重復命令的時間,尤其是那些就用1-2次就不會用的腳本,尤其在window系統下不方便使用shell命令的時候。
PS.當然在windows系統下也可以借用git模擬Unix命令環境~~~~
總而言之,蠻適合學習下,多用用
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對武林技術頻道的支持。
以上是本文的全部內容,希望本文的內容對每個人的學習或工作都有一定的借鑒意義,感謝您對武林技術頻道的支持!
新聞熱點
疑難解答
圖片精選