目錄
一行式選項
特殊字元
例1:每一行後面加空行
例2:每一行後加空行,空行除外
例3:連續輸出多個相等字元
例4:行前加空行
例5:輸出非空行
例6:移除單詞間所有空白
例7:每行單詞間連續空白壓縮為單空格
例8:原地修改拷貝
例9:所有行行號
例10:非空行行號遞增,全部輸出
例11:非空行行號遞增,只輸出非空行
例12:#計數單詞個數,為每個單詞編號
例13:#計算每行單詞個數,每行單獨編號
參考文獻
perl程式一行命令,可以替代grep+sed+awk;
-e 表示後面接perl的一行式表示式;
-p 表示print操作,即對每一讀入的行在經過表示式操作後都預設輸出;
-n 表示處理檔案但預設不輸出處理後的行;
-p -n都存在 -n和-p兩個選項會自動讀取檔案,-p會覆蓋-n;
-l 在結合-n或-p使用的時,會自動對讀入的行移除尾隨換行符,然後在輸出的時候自動追加尾隨輸出分隔符;
-i 原地修改、拷貝副本,類似sed的"-i";
$\ 輸出行分隔符,類似awk的ors,它預設為undef;
$. 當前處理行的行號。
更新ing
例如,待處理資料夾file.log
root x 0 0 root /root /bin/bash
daemon x 1 1 daemon /usr/sbin /usr/sbin/nologin
bin x 2 2 bin /bin /usr/sbin/nologin
sys x 3 3 sys /dev /usr/sbin/nologin
sync x 4 65534 sync /bin /bin/sync
perl -pe '$\="\n"' file.log
#將$\(輸出行分隔符)替換為\n,類似awk的ors,$\預設為空值undef
perl -pe '$\="\n" unless /^$/' file.log
#unless /^$/跳過空行
perl -pe '$\="\n" if /\s/' file.log
#\s匹配到多個空白符跳過
以上方法類似
perl -e 'print "comeon!\t"x10,"\n";'
#x,表示重複
perl -pe 's/^/\n/g' file.log
#^替換為\n
perl -ne 'print if /\s/' file.log
#匹配到乙個空白(\s)就不輸出(-n)
perl -ne 'print unless/^$/' file.log
#unless/^$/,匹配到空白就不輸出(-n)
perl -lne 'print if length' file.log
#ength($_)為零不輸出
perl -lpe 's/ //g' file.log
#類似於sed -i
perl -lpe 's/\s+/ /g' file.log
#s/\s+/ /g 多空白替換為一空白
perl -i".bak" -lpe 's/$/\n/g' file.log
#-i修改檔案並複製為file.log.bak
perl -pe '$_ = "$. $_"' file.log
#$.為當前行號
perl -pe '$_ = ++$x." $_" if /\s/' file.log
#if /\s/ 匹配到非空白行,行號自增並返回(++$x.,$x.中x可以替換為其它字母)
perl -ne 'print ++$x." $_" if /\s/' file.log
#不輸出沒處理的行,即空白行不輸出
perl -pe 's/(\w+)/".$1"/ge' file.log
<1>.root <2>.x <3>.0 <4>.0 <5>.root /<6>.root /<7>.bin/<8>.bash
<9>.daemon <10>.x <11>.1 <12>.1 <13>.daemon /<14>.usr/<15>.sbin /<16>.usr/<17>.sbin/<18>.nologin
<19>.bin <20>.x <21>.2 <22>.2 <23>.bin /<24>.bin /<25>.usr/<26>.sbin/<27>.nologin
<28>.sys <29>.x <30>.3 <31>.3 <32>.sys /<33>.dev /<34>.usr/<35>.sbin/<36>.nologin
<37>.sync <38>.x <39>.4 <40>.65534 <41>.sync /<42>.bin /<43>.bin/<44>.sync
perl -pe '$num=0;s/(\w+)/".$1"/ge' file.log
<1>.root <2>.x <3>.0 <4>.0 <5>.root /<6>.root /<7>.bin/<8>.bash
<1>.daemon <2>.x <3>.1 <4>.1 <5>.daemon /<6>.usr/<7>.sbin /<8>.usr/<9>.sbin/<10>.nologin
<1>.bin <2>.x <3>.2 <4>.2 <5>.bin /<6>.bin /<7>.usr/<8>.sbin/<9>.nologin
<1>.sys <2>.x <3>.3 <4>.3 <5>.sys /<6>.dev /<7>.usr/<8>.sbin/<9>.nologin
<1>.sync <2>.x <3>.4 <4>.65534 <5>.sync /<6>.bin /<7>.bin/<8>.sync
直接修改檔案
perl基礎學習1
cat example.pl usr bin perl 注釋,perl的注釋前面只要乙個 即可 多行注釋 pod print hello world n cut 多行注釋 print n 華麗的分割線 n perl的變數既可以是整形,也可以是浮點型,也可以是字串等,my是區域性變數的意思,字串在pe...
perl學習筆記之
1 表示式修飾符if unless while untile foreach 2 data檔案控制代碼 data 標誌著指令碼的邏輯結束,並開啟data檔案控制代碼用於讀取。3 m運算子 如果包圍正規表示式的定界符是斜槓,m運算子是可選的 如果忙亂變了定界符,則是要求的。格式 regular exp...
perl學習 perl除錯命令
除錯命令列表如下 所有命令都在除錯提示符下頂格輸入,命令大小寫有關 h 顯示偵錯程式的幫助資訊。h 以分頁形式顯示偵錯程式的幫助資訊。hh 顯示乙個壓縮的幫助資訊。h除錯命令 顯示某個除錯命令的幫助。perl偵錯程式用法中p表示式 顯示變數或表示式的值,不顯示複雜變數嵌入的結構和資料。x表示式 顯示...