Perl學習教程之單行命令詳解

2022-09-29 17:09:20 字數 1304 閱讀 2865

前言

與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...