• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            那誰(shuí)的技術(shù)博客

            感興趣領(lǐng)域:高性能服務(wù)器編程,存儲(chǔ),算法,Linux內(nèi)核
            隨筆 - 210, 文章 - 0, 評(píng)論 - 1183, 引用 - 0
            數(shù)據(jù)加載中……

            放棄Shell,主攻Perl

            上個(gè)禮拜,要求完成一個(gè)任務(wù),從下載特定網(wǎng)頁(yè)并從中抓取一些感興趣的字段.

            做法很簡(jiǎn)單,用wget獲取網(wǎng)頁(yè)代碼,采用正則表達(dá)式抓取數(shù)據(jù).

            剛開(kāi)始采用Shell,但是到了采用正則的時(shí)候出現(xiàn)了問(wèn)題,我承認(rèn)我的sed玩的不夠好,這個(gè)任務(wù)應(yīng)該可以用sed搞定的,但是整了半天都沒(méi)整好,有人又說(shuō)可以用grep,弄了半天都沒(méi)有完成.我開(kāi)始對(duì)使用shell中的小工具反感了起來(lái),雖然根據(jù)Unix的哲學(xué),一個(gè)工具完成一件事情,通過(guò)管道等膠合劑把它們連接在一起.但是,會(huì)出現(xiàn)以下的問(wèn)題:1)對(duì)我那個(gè)問(wèn)題而言,可能同時(shí)有多個(gè)工具可以完成任務(wù),而sed,awk之類的學(xué)習(xí)成本稍高 2)有一些問(wèn)題,shell中沒(méi)有很好的解決辦法,比如我將每個(gè)網(wǎng)站的地址和抓取數(shù)據(jù)所需的正則表達(dá)式存儲(chǔ)在了mysql數(shù)據(jù)庫(kù)中,shell中有工具可以訪問(wèn)數(shù)據(jù)讀取它們嗎?(如果你知道請(qǐng)告訴我) 3)并不是任何的任務(wù)shell中都可以找到工具完成,比如我想寫(xiě)一個(gè)測(cè)試我的服務(wù)器的測(cè)試客戶端,如果我不會(huì)腳本語(yǔ)言,那么很有可能又得從頭寫(xiě)一個(gè)C程序來(lái)完成這個(gè)工作.

            也就是說(shuō),我需要一個(gè)工具,功能足夠的完備,可以操作文本文件,訪問(wèn)數(shù)據(jù)庫(kù),建立socket連接等等,同時(shí),對(duì)一些問(wèn)題的解決有統(tǒng)一的方案,比如我如果要在文本文件中查找我所需的字段不再要去考慮是采用grep,sed還是awk了.

            滿足這些要求的腳本語(yǔ)言似乎只有Perl和Python了,去年學(xué)過(guò)一些Python,感覺(jué)語(yǔ)法簡(jiǎn)潔很容易入門(mén),不過(guò)聽(tīng)說(shuō)速度不夠快,今年開(kāi)始轉(zhuǎn)向了Perl,Perl的語(yǔ)法非常的靈活,是我見(jiàn)到的最靈活的語(yǔ)言,這也許跟這門(mén)語(yǔ)言的發(fā)明人是個(gè)語(yǔ)言學(xué)家,倡導(dǎo)"There is more than one way to do it"有關(guān)吧.剛開(kāi)始很不習(xí)慣,畢竟我是C程序員出身,習(xí)慣了C的語(yǔ)言,現(xiàn)在慢慢的適應(yīng)了.

            話歸正題,這里說(shuō)的放棄Shell指的是不在Shell編程上多花時(shí)間,但是基本的Shell命令和概念還是應(yīng)該有的,萬(wàn)變不離其宗,不懂shell的程序員不能算是優(yōu)秀的unix程序員,只不過(guò)我更加需要一個(gè)通用的工具去完成我大部分的工作罷了.

            posted on 2008-03-17 22:22 那誰(shuí) 閱讀(3781) 評(píng)論(6)  編輯 收藏 引用 所屬分類: Perl

            評(píng)論

            # re: 放棄Shell,主攻Perl  回復(fù)  更多評(píng)論   

            呵呵 我也是因?yàn)閟ocket的原因 看的perl 現(xiàn)在服務(wù)器的陪測(cè)程序 都是用perl寫(xiě)的。特適合寫(xiě)陪測(cè)腳本。下面是我以前寫(xiě)的幾個(gè)服務(wù)器的陪測(cè)腳本http://m.shnenglu.com/CppExplore/archive/2007/12/04/37752.html
            2008-03-18 09:14 | cppexplore

            # re: 放棄Shell,主攻Perl[未登錄](méi)  回復(fù)  更多評(píng)論   

            了解 Shell 編程對(duì)用好 Shell 很重要的 ;)
            2008-08-03 19:04 | Lee

            # re: 放棄Shell,主攻Perl  回復(fù)  更多評(píng)論   

            Shell可以的做的事情很多,如果你只是做簡(jiǎn)單的事情,更適合。
            你覺(jué)得困難,那是因?yàn)槟銢](méi)有用心去學(xué)習(xí)。譬如你要調(diào)用mysql,用shell直接就可以調(diào)用mysql的工具啊……
            2008-11-24 15:37 | quady

            # re: 放棄Shell,主攻Perl  回復(fù)  更多評(píng)論   

            更加需要一個(gè)通用的工具去完成我大部分的工作罷了
            我也是這樣認(rèn)為的,要用一個(gè)更通用的工具來(lái)完成大部分任務(wù),而不是老是在考慮該用awk, sed, 還是其它小工具來(lái)做某一件事,雖然能很簡(jiǎn)單地完成.
            2009-09-17 16:58 | gdut

            # re: 放棄Shell,主攻Perl  回復(fù)  更多評(píng)論   

            你還是shell用的少
            2011-09-10 12:32 | 匿名
            欧美日韩精品久久久久| 久久香蕉一级毛片| 亚洲欧美成人久久综合中文网| 久久国产综合精品五月天| 国产精品成人无码久久久久久| 久久93精品国产91久久综合| 国产精品99久久久久久宅男小说| 中文字幕久久精品| 国产亚洲精品美女久久久| 久久久久亚洲AV成人网人人软件| 亚洲精品99久久久久中文字幕 | 久久精品一区二区| 久久久久亚洲AV无码专区桃色 | 久久国产免费直播| 一本色道久久88精品综合| 94久久国产乱子伦精品免费| 欧美激情精品久久久久久久九九九 | 久久有码中文字幕| 亚洲中文字幕无码一久久区| 久久精品国产福利国产秒| 久久无码高潮喷水| 国产精品熟女福利久久AV| 久久国产精品一国产精品金尊| 国产呻吟久久久久久久92| 婷婷久久香蕉五月综合加勒比| 久久久精品久久久久久 | 亚洲国产视频久久| 国产无套内射久久久国产| 免费精品99久久国产综合精品| 97精品伊人久久久大香线蕉 | 久久久久久久97| 久久婷婷人人澡人人| 精品无码久久久久久久动漫| 国内精品久久久久久久97牛牛| 久久99热这里只有精品国产| 精品国产乱码久久久久久1区2区 | 久久婷婷午色综合夜啪| 国产精品免费久久久久影院| 国产精品一区二区久久 | 国产成人久久精品二区三区| 99国产欧美久久久精品蜜芽|