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

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

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

    敏捷、分布式、ALM過程自動化、企業應用架構
    posts - 14, comments - 0, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Example 2-2. A program for finding the maximum recorded temperature by year from NCDC weather records

    #!/usr/bin/env bash

    for year in all/*

    do

      echo -ne `basename $year .gz`"\t"

      gunzip -c $year | \

        awk '{ temp = substr($0, 88, 5) + 0;

               q = substr($0, 93, 1);

               if (temp !=9999 && q ~ /[01459]/ && temp > max) max = temp }

             END { print max }'

    done

     

    使用linux腳本打印每年最高溫度,先解釋一下該腳本幾個注意點。

    腳本目的是發現每年的最高溫度,第一句for year in 后的all/*表示在名稱為all的文件夾下每年度的溫度信息都以 1990.gz 方式存在。使用gunzip方式解壓并打印,對打印的內容使用awk函數進行處理,獲取最大溫度,單個文件處理完畢后打印max

     

    在上一篇中獲取的數據包是這樣,年度為文件夾,當中包含若干個溫度詳情文件。

    E:\testData\1990\010010-9999-1990.gz

    E:\testData\1990\010014-9999-1990.gz

    E:\testData\1990\010015-9999-1990.gz

    E:\testData\1990\010016-9999-1990.gz

     

    從后面Appendix C的描述中得知,實際上作者對這樣的數據進行了處理,因為hadoop在處理大量的小文件時無法達到很高的效率,因此作者使用hadoop將小文件合并,并且給出了代碼。

     

    我比較希望能夠使用腳本處理,將所有的gz解壓之后,合并成為一個文件,打包成gz的格式,這樣就能完全符合之前那段腳本的處理方式。所以,腳本如下:

    packyear

    #! /bin/sh

    # /usr/data/packyear

     

    # unzip all gz files in data

    for yeards in data/*

    do

           # unzip all gz files in year directory

           for gzfile in $yeards/*

           do

                  gunzip $gzfile

           done

          

           # cat all content to year file

           cat $yeards/* | head -2 >> $yeards.tc

     

           # remove year directory

           rm -rf $yeards

           mv $yeards.tc $yeards

     

           # zip the tc file

           gzip $yeards

    done

     

    根據實際路徑改寫的計算最大溫度的腳本

    maxyear

    #! /bin/sh

    # /usr/data/ maxyear

     

    for year in /usr/data/*

    do

      basename $year .gz

      gunzip -c $year | \

        awk '{temp=substr($0, 88, 5)+0;

            q=substr($0, 93, 1);

            if(temp !=9999 && q ~ /[01459]/ && temp > max) max = temp}

          END {print max}'

    done

    這個腳本最終顯示出來會是:

    1990

    3

    這樣的格式。由于對數據結構的不熟悉,所以不確定顯示出來的數據是否正確,但是基本的腳本和數據操作方式就是這樣了。

    主站蜘蛛池模板: 91免费资源网站入口| av无码国产在线看免费网站| 卡一卡二卡三在线入口免费| 亚洲自偷自拍另类图片二区| 暖暖在线视频免费视频| 亚洲av午夜福利精品一区 | 最新亚洲卡一卡二卡三新区| 18禁止观看免费私人影院| 亚洲免费闲人蜜桃| 中国在线观看免费高清完整版| 亚洲精品美女网站| 好男人看视频免费2019中文| 日韩亚洲不卡在线视频中文字幕在线观看| 久久精品国产免费观看| 性xxxx黑人与亚洲| 国产极品粉嫩泬免费观看| 羞羞漫画登录页面免费| 久久久青草青青国产亚洲免观 | WWW免费视频在线观看播放| 亚洲午夜国产精品无码| 美女内射无套日韩免费播放| 亚洲免费黄色网址| 免费吃奶摸下激烈视频| baoyu777永久免费视频| 亚洲沟沟美女亚洲沟沟| 免费视频淫片aa毛片| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 亚洲风情亚Aⅴ在线发布| 免费观看亚洲人成网站| 成在线人视频免费视频| 亚洲精品天天影视综合网| 99久久免费国产精品特黄| 亚洲AV无码男人的天堂| 亚洲宅男天堂在线观看无病毒| 无码国产精品一区二区免费vr| 亚洲国产综合第一精品小说| 日韩黄色免费观看| 成人免费区一区二区三区| 亚洲人成77777在线观看网| 亚洲国产一区视频| 精品免费人成视频app|