<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評論-209  文章-0  trackbacks-0

    Python語法簡單,而且通過縮進的方式來表現層次結構,代碼非常簡明易懂,對初學者來說,比較容易上手。

    Perl的模式匹配非常強大,同時匹配的符號有很多種,難以閱讀和維護。

    在文本處理方面,python通過加載re模塊來實現模式匹配的查找和替換。而Perl內置就有模式匹配功能。

    note:內置命令和外部命令的區別。

    通過代碼來直接做比較。

    python版:

    #!/usr/bin/python
    import re
    import fileinput
    exists_re = re.compile(r'^(.*?) INFO.*Such a record already exists', re.I)
    location_re = re.compile(r'^AwbLocation (.*?) insert into', re.I)
    for line in fileinput.input():
        fn = fileinput.filename()
        currline = line.rstrip()
        mprev = exists_re.search(currline)
        if(mprev):
            xlogtime = mprev.group(1)
        mcurr = location_re.search(currline)
        if(mcurr):
            print fn, xlogtime, mcurr.group(1)
    

    Perl版:

    #!/usr/bin/perl
    while (<>) {
        chomp;
        if (m/^(.*?) INFO.*Such a record already exists/i) {
            $xlogtime = $1;
        }
        if (m/^AwbLocation (.*?) insert into/i) {
            print "$ARGV $xlogtime $1\n";
        }
    }
    

    time process_file.py *log  > summarypy.log

    real   0m8.185s

    user  0m8.018s

    sys    0m0.092s

    time process_file.pl  *log > summaypl.log

    real    0m1.481s

    user   0m1.294s

    sys     0m0.124s

    在文本處理方面,Perl 比Python快8倍左右。

    所以在處理大文件如大日志方面,用perl更好,因為更快。

    如果對速度要求不是很嚴格的話,用python更好,因為python簡潔易懂,容易維護和閱讀。

    為什么在文本處理時,Perl比Python快很多呢?

    這是因為Perl的模式匹配是其內置功能,而Python需要加載re模塊,使用內置命令比外部命令要快很多。

    內置命令和外部命令的區別

    Linux命令有內置命令和外部命令之分,功能基本相同,但是調用有些細微差別。
    內置命令實際上是shell程序的一部分,其中包含的是一些簡單的linux系統命令,這些命令在shell程序識別并在shell程序內部完成運行,通常在linux系統加載運行時shell就被加載并駐留在系統內存中。內部命令是設在bash源代碼里面的,其執行速度比外部命令快,因為解析內部命令shell不需要創建子進程,比如exit,cd,pwd,echo,history等。
    外部命令是linux系統中的實用應用程序,因為實用程序的功能通常比較強大,其包含的程序量也很大,在系統加載的時候并不隨系統一起被加載到內存中,而是在需要的時候才將其調入內存。通常外部命令的實體并不包含在shell中,但是其命令執行過程是由shell程序控制的。shell程序管理外部命令執行的路徑查找,加載存放,并控制命令的執行。外部命令是在bash之外額外安裝的,通常放在/bin, /usr/bin, /sbin,  /usr/sbin,....等。

    用type命令可以分辨內部命令與外部命令。


    posted on 2015-11-26 23:15 xzc 閱讀(1583) 評論(0)  編輯  收藏 所屬分類: linux/unix
    主站蜘蛛池模板: 99久久综合国产精品免费| 在线观看视频免费国语| 亚洲一区二区高清| 国产精品亚洲AV三区| 成人无遮挡毛片免费看| 亚洲妇女无套内射精| 天天操夜夜操免费视频| 亚洲Av无码国产一区二区| 国产成人免费a在线资源| 色网站在线免费观看| 久久亚洲AV无码西西人体| 久久99毛片免费观看不卡| 中文字幕亚洲综合久久| 97人妻无码一区二区精品免费| 亚洲日本久久久午夜精品| 免费无遮挡无码视频网站| 亚洲人成人网站色www| 久久免费精品视频| 亚洲在成人网在线看| 啦啦啦手机完整免费高清观看| 日韩国产精品亚洲а∨天堂免| 亚洲国产精品专区在线观看 | 国产精品免费高清在线观看| 亚洲AV成人精品网站在线播放| 亚洲人成在线免费观看| 亚洲精华液一二三产区| MM131亚洲国产美女久久| 99re视频精品全部免费| 亚洲日本一线产区和二线| 亚洲精品动漫人成3d在线| 一级毛片在线观看免费| 亚洲中文字幕无码中文字| 久99精品视频在线观看婷亚洲片国产一区一级在线 | 亚洲AV成人精品网站在线播放| 免费在线观看的网站| 人碰人碰人成人免费视频| 亚洲第一页在线观看| 亚洲精品456播放| 亚洲成人免费网站| 免费人妻精品一区二区三区| 成在人线AV无码免费|