01. 命令概述
perl命令是perl語言解釋器,負責解釋執(zhí)行perl語言程序。
02. 命令格式
用法:perl [選項] [參數]
1
03. 常用選項
-o 以八進制數形式指定輸入記錄的分隔符(也保存在perl中的特殊變量$/中)
-a 當和-n或者-p一起使用時啟動自動拆分模式.這種模式可以拆分輸入的行,并把它們放置在名為@F的專門數組中
-c 使perl檢查腳本的語法,然后退出
-C 使perl能夠在目標系統(tǒng)中使用原始的寬字符API.
-d 在perl調試程序下運行腳本
-e 使用命令行,
-F 如果使用了-a,該參數可以用來指定所拆分的模式
-h 打印出所有選項的匯總
-i 指出被<>結構處理的文本
-I 使perl為模塊搜索目錄
-l 添加行結束處理,當和-n與-p開關一起使用,這個開關能自動把$/從輸入數據中刪除,并把$\(輸出記錄分隔符)設置為octnum,這樣打印語句就可以使用該分隔符了.
-m[-]module 在執(zhí)行腳本前,把指定模塊包含在腳本中
-n 讓perl在腳本中試用while(<>)循環(huán)
-p 讓perl把下面循環(huán)添加到腳本中:
-P perl編譯之前,通過C預設處理程序來運行自己的腳本
-s 在命令行中允許要進行開關解析
-S 讓perl試用PATH環(huán)境變量來搜索腳本
-T 強制打開錯誤檢查
-u 在編譯了腳本后,導致perl清楚內核
-U 允許perl進行不安全的操作,如刪除目錄等
-v 打印出perl的版本及包的級別
-V:name 打印出指定的配置變量的匯總
-w 打印出警告信息
-W 無論no warnings或$^W的狀態(tài)是什么,都啟動警告信息
-x directory 通知perl腳本嵌入到消息中,文本不會被處理,知道第一行代碼以#!開頭并包含了字符"perl"
-X 無論use warnings或$^W的狀態(tài)是什么,都禁止警告信息
– 可選, 表示使用的這些開關的結束位置
04. 參考示例
4.1 解析Perl程序
[deng@localhost tmp]$ perl test.sh
hello world
[deng@localhost tmp]$
4.2 其它用法
# perl -p -i.bak -e 's/\bfoo\b/bar/g' *.c #將所有C程序中的foo替換成bar,舊文件備份成.bak
# perl -i.bak -pe 's/(\d+)/ 1 + $1 /ge' file1 file2 … #將每個文件中出現的數值都加一
# perl -pie 's/\r\n/\n/g' file #將換行符\r\n替換成\n
# perl -pie 's/\n/\r\n/g' file #將換行符\n替換成\r\n
# perl -lane 'print "@F[0..4] $F[6]"' file #顯示字段0-4和字段6,字段的分隔符是空格
# perl -F: -lane 'print "@F[0..4]\n"' /etc/passwd #字段分隔符不是空格而是冒號
# perl -ne 'print if /^START$/ .. /^END$/' file #顯示START和END之間的部分
# perl -ne 'print unless /^START$/ .. /^END$/' file #不顯示START和END之間的部分
# perl -pe 'exit if $. > 50′ file #顯示開頭50行
# perl -ne 'print unless 1 .. 10′ file #不顯示開頭10行
# perl -ne 'print if 15 .. 17′ file #顯示15行到17行
# perl -lne 'print substr($_, 0, 80) = ""' file #每行取前80個字符
# perl -lne 'print substr($_, 10) = ""' file #每行丟棄前10個字符
# perl -ne 'print if /comment/' duptext #查找comment字符串
# perl -ne 'print unless /comment/' duptext #查找不含comment字符串的行
# perl -ne 'print if /comment/ || /apple/' duptext #查找包含comment或apple的行
# perl -lane 'print $F[4] + $F[-2]' #計算字段4和倒數第二字段之和
# perl -e 'print sort <>' file #文件按行排序
# perl -00 -e 'print sort <>' file #文件按段落排序
# perl -0777 -e 'print sort <>' file1 file2 #多個文件按文件內容排序,并返回合并后的文件
# perl -e 'print reverse <>' file1 #文件按行反轉
# perl -ne 'printf "%x\n",$_' #10進制轉16進制
# perl -ne 'printf "%o\n",$_' #10進制轉8進制
# perl -ne 'print hex($_)."\n"' #16進制轉10進制
# perl -ne 'print oct($_)."\n"' #8進制轉10進制
# perl -ne 'print eval($_)."\n"' #簡易計算器
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業(yè)目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。