PS: 2011-1-25 現在再來看這篇文章,覺得自己以前 真的不懂,竟然在shell和perl之間迷茫,現在才明白,shell+awk+sed精通比學perl更重要,因為他更加的靈活,而且更多的與linux的底層打交道,時間久了,也會提高自己對linux的熟練程度,最終目標達到精通,嗯,現在我的目標很明確了,我要精通shell,什么東西只要精通一個就好了,并不需要太多,求的是質量,關鍵在于我可以完成需要達到的效果即可。
最近在linux下工作時,越來越覺得迫切需要掌握一門腳本語言,于是 開始選擇到底學什么?現在比較流行的腳本語言中,perl和python的呼聲最大,所以一直不知道該學那一個。今天在網上查了一下,看到這篇博客覺得挺 有幫助,故和大家分享一下。
原文:shell+sed+awk和perl和python的區別
地址:[url]http://blog.csdn.net/annicybc/archive/2008/04/19/2308146.aspx[/url]
最近在linux下工作時,越來越覺得迫切需要掌握一門腳本語言,于是 開始選擇到底學什么?現在比較流行的腳本語言中,perl和python的呼聲最大,所以一直不知道該學那一個。今天在網上查了一下,看到這篇博客覺得挺 有幫助,故和大家分享一下。
原文:shell+sed+awk和perl和python的區別
地址:[url]http://blog.csdn.net/annicybc/archive/2008/04/19/2308146.aspx[/url]
最近開始學習shell+sed+awk,偶然在
看到下面這篇網友評論文章,覺得有點
意思,就摘抄到此,讓更多需要的人容易看到它!shell+sed+awk
三者中功能最弱,沒有調試程序,大多數 操作必須通過運行其他程序才能執行,所以需要更多時間、內存并在進程表中占有位置。內置的算術運算很有限,數組下標必須是數字等。但它對運行環境要求低, 小巧便捷,是學習系統腳本編程的基礎。
Perl
設 計之初就是為了方便編寫復雜高效的系統腳本,它也是應該最為廣泛的腳本編程語言。它在編程方面相當于瑞士軍刀,對字符、文本文件處理能力很強,以前要求 shell+sed+awk+C才能完成的任務,只需perl腳本就可以完成了。而且應用領域一直在拓寬,支持面向對象程序設計。
Python
面 向對象的動態公共語言,適于腳本編程和快速開發,它最顯著的特點是作為編譯語言(如C)和腳本語言(如perl)之間的橋接語言,它具有的強大功能,可擴 充性及面向對象的特征使其成為大規模應用程序開發工具。
總結
由此可見Perl比 shell+sed+awk更強大,但學習兩者并不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前 兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。
三者中功能最弱,沒有調試程序,大多數 操作必須通過運行其他程序才能執行,所以需要更多時間、內存并在進程表中占有位置。內置的算術運算很有限,數組下標必須是數字等。但它對運行環境要求低, 小巧便捷,是學習系統腳本編程的基礎。
Perl
設 計之初就是為了方便編寫復雜高效的系統腳本,它也是應該最為廣泛的腳本編程語言。它在編程方面相當于瑞士軍刀,對字符、文本文件處理能力很強,以前要求 shell+sed+awk+C才能完成的任務,只需perl腳本就可以完成了。而且應用領域一直在拓寬,支持面向對象程序設計。
Python
面 向對象的動態公共語言,適于腳本編程和快速開發,它最顯著的特點是作為編譯語言(如C)和腳本語言(如perl)之間的橋接語言,它具有的強大功能,可擴 充性及面向對象的特征使其成為大規模應用程序開發工具。
總結
由此可見Perl比 shell+sed+awk更強大,但學習兩者并不沖突,通常是學習shell做為腳本編程的入門基礎。而Python在應用領域則與前 兩者有很大的差別,無太大的可比性。面向不同的任務,可以只需用到其中的一種,也可能三種都要用到,所以究竟該學誰不學誰,需要由面對的任務來決定。
bash - GNU Bourne-Again SHell 類似dos的command,沒他你就別想執行命令
gawk - pattern scanning and processing language 主要用于文本相關的處理的編程語言
sed - a Stream EDitor 用于對字符流進行操作
perl - Practical Extraction and Report Language 一種程序語言,特別用于對字符串處理和作為cgi程序
后三種在linux中是通過bash進行調度執行的
bash你必須用,其他三個要看你的需要了,呵呵
gawk - pattern scanning and processing language 主要用于文本相關的處理的編程語言
sed - a Stream EDitor 用于對字符流進行操作
perl - Practical Extraction and Report Language 一種程序語言,特別用于對字符串處理和作為cgi程序
后三種在linux中是通過bash進行調度執行的
bash你必須用,其他三個要看你的需要了,呵呵
bash、awk、sed、perl
聯系是都可以作為 命令解釋器
功能大小
大=====〉小
perl /*powerful like ksh, fast, use widely
awk /*power two, basic using in shell script, also write awk script
bash, provide user interface, also provide some command
sed , line editor oriented lines
聯系是都可以作為 命令解釋器
功能大小
大=====〉小
perl /*powerful like ksh, fast, use widely
awk /*power two, basic using in shell script, also write awk script
bash, provide user interface, also provide some command
sed , line editor oriented lines
perl
是一種很強的編程語言,你幾乎可以用它做任何事情,awk 則簡單多了,主要用來處理具有一定格式的文件。如果是 shell 編程,awk、sed
等都是不可缺少的工具,當然 perl 完全可以替代 awk、sed、grep 等命令