https://www.jb51.net/article/123326.htm 感受挺好的 改天須要仔細學習一下.
前言git
本文主要給你們介紹了關於Perl單行命令的相關內容,分享出來供你們參考學習,下面話很少說了,來一塊兒看看詳細的介紹吧。shell
與One-Liner相關的perl參數windows
記住以上幾點參數,幾乎能夠開始使用perl來編寫one line命令了bash
以上爲簡介版,下面這張圖能夠算是完整版函數
根據下面的例子來理解下perl one line學習
一、基本格式:perl -參數 ‘命令' 輸入文件spa
二、perl -e
爲必需要寫的參數.net
三、perl -pe
可用於讀取文件每行,並按照給定的命令進行處理,最後輸出;如將文件1.txt中的aaa替換爲AAAcode
1
|
perl -pe
's/aaa/AAA/g'
1.txt
|
四、perl -l參數幾乎能夠跟n搭配代替perl常常用的while(<>){chomp;}
語法htm
五、若是須要處理tab分割的文件的每一行內容,那麼perl -alne
參數幾乎能夠說是必備的,例如while(<>){chomp;@F=split /\s+/,$_;print "$F[0]\n"}
至關於
1
|
perl -alne
'print $F[0]'
|
六、perl單行命令腳本里的變量都不須要預先聲明,如想打印出每空行,而且每行以行數開頭
1
|
perl -
ne
'print ++$a." $_" if /./'
|
七、perl單行命令有時優於sed/grep等shell命令是因爲其優秀的正則匹配,一般簡單的匹配能夠如:匹配上的行號,模仿grep -c的功能:
1
|
perl -lne
'$a++ if /regex/; END {print $a+0}'
|
八、perl單行命令可使用perl的模塊,如使用sum函數的模塊:
1
|
perl -MList::Util=
sum
-alne
'print sum @F'
|
九、perl也能夠像awk同樣使用END命令,如打印出文件中總單詞個數
1
|
perl -alne
'$t += @F; END { print $t}'
|
十、perl也可使用map{}
等函數,如打印出匹配上的單詞的總個數
1
|
perl -alne
'map { /regex/ && $t++ } @F; END { print $t }'
|
十一、perl單行命令能夠說是將perl的簡潔用到了極致,如打印出匹配上的行:
1
|
perl -
ne
'/regex/ && print'
|
十二、perl單行命令能像perl同樣靈活的使用則正表達式
1
|
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命令環境~~~~
總而言之,蠻適合學習下,多用用
總結
以上就是這篇文章的所有內容了,但願本文的內容對你們的學習或者工做具備必定的參考學習價值,若是有疑問你們能夠留言交流,謝謝你們對腳本之家的支持。