• <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>

            Prayer

            在一般中尋求卓越
            posts - 1256, comments - 190, trackbacks - 0, articles - 0
              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            shell的效率不如perl或Python?

            Posted on 2010-06-07 12:25 Prayer 閱讀(2629) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Shell 、PERL
            shell文本處理方面,主要是有sed,awk這兩把刀。

            光給你個(gè)shell你進(jìn)行文本處理是做不到的,當(dāng)然簡(jiǎn)單的還可以。

            perl里有正則表達(dá)式引擎,能針對(duì)文本進(jìn)行拆分替換等復(fù)雜操作,關(guān)鍵是,perl不用fork出新的進(jìn)程來(lái)處理這些事情,而shell需要使用管道等通過(guò)這些sed,awk的進(jìn)程來(lái)處理,至少就多出部分進(jìn)程的開(kāi)銷。

            而且,管道這個(gè)東西,原本一個(gè)工具一次能完成的任務(wù),在需要經(jīng)過(guò)sed,和awk等多次管道。效率可想而知。

            其實(shí)你這個(gè)問(wèn)題問(wèn)的有點(diǎn)弱智,SHELL是什么?

            SHELL只是一個(gè)接口,大部分的功能全靠外部程序來(lái)完成。
            而Perl是一種語(yǔ)言,基本上什么事情都能做。


            老老實(shí)實(shí)學(xué)好一樣?xùn)|西最實(shí)際。
            當(dāng)你參加面試的時(shí)候,如果可以自信的說(shuō)自己熟練使用Shell或者Perl,那就相當(dāng)不錯(cuò)了。
            效率之類的云云,具體問(wèn)題具體分析吧,能解決工作中遇到的問(wèn)題就行。


            看出來(lái)樓主比較關(guān)心文本處理,下面這個(gè)比方不一定恰當(dāng),但已經(jīng)很接近了:


            • 相比較而言,awk、sed就像死板手,而perl和python是個(gè)活板手。
            • awk和sed專注于文本處理,大部分情況效率要優(yōu)于perl等。很簡(jiǎn)單,比如列文件,誰(shuí)能有cat的效率高?
            • 如果你是個(gè)懶惰的SA,那就用shell吧。如果是geek或者你的工作需要復(fù)雜的邏輯,并且還會(huì)出現(xiàn)許多無(wú)法預(yù)知的新要求,那就用perl等好了。


            沒(méi)那么多關(guān)鍵字,是打字手誤,但是1-10萬(wàn)數(shù)量級(jí)的關(guān)鍵字,在千萬(wàn)行級(jí)文本文件中搜索,這個(gè)量還是有的。

            來(lái)段sed multiple keywords search in batch的代碼,歡迎其他新想法。
            1.                 local num_in_batch=300
            2.                 local batch_counter=0
            3.                 local log_display_in_batch=1000
            4.                 local bbl_counter=0
            5.                 local num_in_bl_counter=0
            6.                 declare -a bbl_arr=()
            7.                 local keyword=
            8.                 local keyword_del

            9.                
            10.                 logMsg $debug_flag null "Starting blacklist checking in batch."

            11.                 for msisdn in `cut -d: -f2 $tmpfile`; do       
            12.                         if [ $batch_counter -eq $num_in_batch ]; then
            13.                                 keyword="${keyword}$msisdn"
            14.                                 bbl_arr=(`sed -rn "/$keyword/p" $filter_file`)
            15.                                 local num=${#bbl_arr[@]}
            16.                                 ((num_in_bl_counter+=num))
            17.                                 if [ $num -gt 1 ]; then
            18.                                         keyword_del=`echo ${bbl_arr[@]} | tr " " "|"`
            19.                                         sed -ri "/${keyword_del}/d" $inputfile
            20.                                 fi
            21.                                 keyword=
            22.                                 batch_counter=0
            23.                         else
            24.                                 keyword="${keyword}$msisdn|"
            25.                         fi
            26.                         if [ $((bbl_counter%log_display_in_batch)) -eq 0 ]; then
            27.                                 logMsg $debug_flag null "$bbl_counter MSISDN processed."
            28.                         fi
            29.                         ((batch_counter++))
            30.                         ((bbl_counter++))
            31.                 done
            復(fù)制代碼
            久久99精品久久久久久水蜜桃| 亚洲?V乱码久久精品蜜桃 | 精品久久久久久久中文字幕| 国产精品久久久久一区二区三区| 国产精品日韩深夜福利久久| 四虎亚洲国产成人久久精品| 久久久久无码精品国产| 久久久久亚洲AV综合波多野结衣 | 中文字幕无码久久精品青草| 久久亚洲精品成人无码网站| 久久综合丝袜日本网| 91麻豆国产精品91久久久| aaa级精品久久久国产片| 久久久久亚洲AV无码观看| 久久亚洲欧美日本精品| 久久午夜羞羞影院免费观看| 精品久久久久中文字幕一区| 久久久久亚洲AV成人片| 2021国内精品久久久久久影院| 久久精品国产亚洲麻豆| 中文精品久久久久人妻不卡| 久久人人超碰精品CAOPOREN| 国产国产成人精品久久| 囯产精品久久久久久久久蜜桃| 国产精品成人久久久久久久| 精品久久久久久无码专区不卡| 狠狠色丁香婷婷综合久久来来去| 2021少妇久久久久久久久久| 无码AV波多野结衣久久| 久久99精品久久久久久水蜜桃| 久久精品一本到99热免费| 久久精品国产欧美日韩99热| 国产—久久香蕉国产线看观看| 日韩欧美亚洲综合久久影院d3| 国产精品久久久久久福利69堂| 亚洲中文字幕无码久久综合网| 久久久久国产日韩精品网站| 国产精品嫩草影院久久| 狠狠人妻久久久久久综合蜜桃| 国产精品成人无码久久久久久 | 久久久这里只有精品加勒比|