Perl 的 -p 選項告訴它讀取和處理標(biāo)準(zhǔn)輸入中的每行內(nèi)容,并將結(jié)果打印到標(biāo)準(zhǔn)輸出 。-e 選項允許您在命令行中指定一個 Perl 表達(dá)式(實際上是一個程序) 。
清單 17 顯示了如何使用 Perl 完成清單 5 中的示例 。
清單 17. 使用 Perl 完成 tr 的工作
chrish@dhcp3 [248]$ echo a test | perl -p -e 'tr/t/p/;'
a pesp
chrish@dhcp3 [249]$ echo a test | perl -p -e 'tr/aest/1234/;'
1 4234
chrish@dhcp3 [250]$ echo a test | perl -p -e 'tr/t//d;'
a es
chrish@dhcp3 [251]$ echo a test | perl -p -e 'tr/a-z/A-Z/;'
A TEST
Perl 的 tr 語句具有不同的語法,它更像 sed 的搜索和替換表達(dá)式 。另請注意,您在最后一個示例中指定了小寫和大寫字符的范圍 。
Perl 中的正則表達(dá)式支持非常優(yōu)秀,并且上面的 sed 示例可以作為有效的 Perl 語句正常工作 。清單 18 使用 Perl 顯示了清單 16 中的 ls -l 示例,除了 Perl 命令行語法之外,不需要對其他的內(nèi)容進行更改 。
清單 18. 使用 Perl 重組 ls 的輸出
chrish@dhcp3 [384]$ ls -l | tail | perl -p -e
's/(.([r-][w-][x-]){3})[[:space:]] [[:digit:]] [[:space:]] ([A-Za-z0-9_-.]
[[:space:]] ){2}([[:digit:]] )[[:space:]] .{3} [0-9 ]{2} [0-9
][0-9]:[0-9][0-9][[:space:]] (. )$/5 (1) has 4 bytes of data/'
gsrvdir501 (drwx------) has 102 bytes of data
hsperfdata_chrish (drwxr-xr-x) has 68 bytes of data
hsperfdata_root (drwxr-xr-x) has 102 bytes of data
Illustrator_activation.plist (-rw-r--r--) has 531 bytes of data
indesign_activation.plist (-rw-r--r--) has 531 bytes of data
objc_sharing_ppc_4294967294 (-rw-------) has 24 bytes of data
objc_sharing_ppc_501 (-rw-------) has 132 bytes of data
objc_sharing_ppc_92 (-rw-------) has 24 bytes of data
Photoshop_activation.plist (-rw-r--r--) has 531 bytes of data
serialinfo.plist (-rw-r--r--) has 928 bytes of data
這樣做的優(yōu)點在于,您可以使用 sed 或 Perl 完善正則表達(dá)式,并且在只包含其中某一個的系統(tǒng)中,您仍然可以它們 。使用 Perl,您可以獲得全方位的編程結(jié)構(gòu),可以充分地利用它們進行更復(fù)雜的文本處理 。
總結(jié)
【使用 UNIX 進行文本處理】使用像 sed 和 Perl 這樣功能強大的工具,以及神奇的正則表達(dá)式,您可以直接通過 Unix 命令行輕松地完成復(fù)雜的文本處理任務(wù) 。這使得您可以有效地將多個命令組合在一起,以正確地完成文本處理工作 。
推薦閱讀
- 一 V226選購、使用記
- 如何移動UNIX目錄
- SCO UNIX基礎(chǔ)講座--第五講:電子郵件
- MP3使用5天感覺
- SCO UNIX基礎(chǔ)講座--第六講:後援復(fù)制
- 在sco 5.0.5中定時運行程序
- 使用半年小評桑達(dá)5300優(yōu)缺點
- 使用ppt制作出小人跑步動畫效果具體操作方法
- 在SCO下直接使用ISO鏡像安裝軟件的方法
- SCO UNIX 5 的引導(dǎo)過程
