1. 程式人生 > >序言:我為什麼學Perl

序言:我為什麼學Perl

曾經,我熟練操作grep、awk、sed,甚至自認對sed尚算精通,我一度愛上了寫指令碼。但是隨著寫指令碼的次數多了,需求複雜了,我深深的感受到shell的無奈。

例如,我多次遇到過類似下面這種噁心的需求:

sed ... | awk ...

其中sed要操作第2到第5行,同時awk要操作中間的第3行,在awk操作第3行的時候,sed的第2行不能丟棄。

對於shell來說這基本上是不可能實現的,因為它通過管道在各命令之間傳遞資料,這使得管道前面的資料必須傳遞給管道後面,而資料一被管道傳遞就從管道左邊程式的快取中消失了,也就是不可重用了。

於是我學了Perl,在這之前我也學了python,但是學過Perl之後,在我覺得shell難以實現的時候,我的第一想法幾乎總是使用Perl去實現指令碼,而不是用python。

本文我要分享的是一行式Perl程式,它完全可以替代grep+sed+awk,且功能還更強大。文章篇幅稍大,可算是一本較薄的書,但除了專門的perl正則表示式之外(如果沒有學過程式語言的正則的話。我也寫過一篇非常詳細又0基礎友好的Perl正則,如有需求,可參見Perl正則表示式超詳細教程),其它的都絕對基礎,我解釋的也足夠簡單,只要認真看,它真的比awk更簡單。按照我現在的感受,我花上幾天時間去深入掌握awk,真不如去學Perl一行式。

Perl一行式系列文章:Perl一行式程式

如果覺得文章不錯,請幫忙點下右下角的贊。感謝!!!