前言
與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(<>)語法
5、如果需要處理tab分割的檔案的每一行內容,那麼perl -alne引數幾乎可以說是必備的,例如while(<>)相當於
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 '
8、perl單行命令可以使用perl的模組,如使用sum函式的模組:
perl -mlist::util=sum -alne 'print sum @f'
9、perl也可以像awk一樣使用end命令,如列印出檔案中總單詞個數
perl -alne '$t += @f; end '
10、perl也可以使用map{}等函式,如列印出匹配上的單詞的總個數
p程式設計客棧erl -alne 'map @f; end '
11、perl單行命令可以說是將perl的簡潔用到了極致,如列印出匹配上的行:
perl -ne '/regex/ && print'
12、perl單行命令能像perl一樣靈活的使用則正表示式
perl -ne 'print if /^\d+$/'
以上例子均出自於
使用perl來處理資料的我們,會一點perl one line可以有效的減少編寫重複命令的時間,尤其是那些就用1-2次就不會用的指令碼,尤其在window系統下不方便使用shell命令的時候。
ps.當然在windows系統下也可以借用git模擬unix命令環境~~~~
總而言之,蠻適合學習下,多用用
總結本文標題: perl學習教程之單行命令詳解
本文位址:
Perl之單行命令特技
將所有c程式中的foo替換成bar,舊檔案備份成.bak perl p i.bak e s bfoo b bar g c 很強大的功能,特別是在大程式中做重構。記得只有在ultraedit用過。如果你不想備份,就直接寫成 perl p i e 或者更簡單 perl pie,恩,pie這個單詞不錯 將...
Perl之單行命令特技
from 替換將所有c程式中的foo替換成bar,舊檔案備份成.bak perl p i.bak e s bfoo b bar g c 很強大的功能,特別是在大程式中做重構。記得只有在ultraedit用過。如果你不想備份,就直接寫成 perl p i e 或者更簡單 perl pie,恩,pie這...
oracle教程之oracle的單行函式詳解和舉例
大小寫控制函式 upper select from emp where job upper salesman lower select from emp where lower job clerk initcap select empno,initcap ename from emp upper l...