Skynet

          ---------- ---------- 我的新 blog : liukaiyi.cublog.cn ---------- ----------

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            112 Posts :: 1 Stories :: 49 Comments :: 0 Trackbacks




          環境設置:如果有系統字符編碼 沖突,在當前
          vim 
          ~/.bash_profile 下加入
          LANG
          =zh_CN
          LC_ALL
          =zh_CN.UTF8
          export LANG LC_ALL


          字符編碼轉化
          :
            
          # 由decode解析,默認會使用 系統編碼 輸出
            # 在 linux 下面其實等價 encode("UTF-8", decode("GBK",$_));

          perl -MEncode -ne 'print decode("GBK",$_);'  file.txt

          判斷數據是否符合輸出:
            echo 
          "121" |perl -ne 'print if /2/;'   #print 123

          匹配正則group輸出
          :
            echo 
          "abc121a" |perl -ne 'print $1 if /(\D+)/;'   #print abc

          大小寫轉化:
            
          # 全部 大小轉小寫
            echo "ABC1C2cGJ" |perl -ne 'tr/[A-Z]/[a-z]/; print ;'  #print
            # "L 中間全部小寫 "E   ; "U 中間全部大寫 "E    ↓

            echo "ABC1C2cGJ" |perl -ne 's/(.*?1)(.*?)(2.*?)/$1\L$2\E$3/g; print ;'  #print ABC1c2cGJ



          源文件替換:
             echo 
          "ABC 123" > te
             sed 
          -'s/ABC/abc/g' te
                 或者 
          : perl --pe 's/ABC/abc/g' te
             cat te 
          # print abc 123


          外部傳參
          :
           
          tt="cc"
            echo "gg" |perl -ne ' print "'$tt'" ;'
            輸出:cc

            perl -e  'print "$ARGV[0]\t$ARGV[1]\n" '  'par1' 'par2'  #print par1 par2
           


          重復列輸出
          :
             cat xx
          .txt | awk -F"    " 'a[$1]++'
             或者 
          :   
             cat xx
          .txt |perl -F"\t" -ane  '$a{$F[1]}++;END{
                  while(($k,$v)=each(%a)){ print "$k = $v "n"; }
              }
          '
              結果比如:
                 百度手機在線 
          = 7
                 中興 
          = 2
                 萬信恒通  
          = 2
             還比如:查看各用戶 有多少個進程
             ps 
          -ef |perl  -ane  '$a{$F[0]}++;END{
                while(($k,$v)=each(%a)){ print "$k = $v \n"; }
             }
          '

          求 兩項  交集
          cat BuyMusic
          .20090525| perl -ne 'BEGIN{
           $p1="600902000005416300";
           $p2="600902000006211983";
           $p_col=30;
           $mob_col=0;

          }END{
            my @inter = grep {$a{$_}} keys %b; # 求交集
            #print $p1,"=",join(",",keys %a),""n";
            #print $p2,"=",join(",",keys %b),""n";
            print "產品 $p1:",scalar keys %a," "n";
            print "產品 $p2:",scalar keys %b," "n";
            print "交集:",scalar @inter," "n";
          }
          chomp;
          @lis=split /\|<>\|/ ;
          if( $lis[ $p_col] eq $p1 ){
             $a{$lis[$mob_col]}++;
          }
          if( $lis[$p_col] eq $p2 ){
             $b{$lis[$mob_col]}++;
          }
          '

           

          關鍵字 Top 
          10 ,輸出源文本數據 :
          perl 
          -e  '
            my $num=10; # top 10
            open(MYFILE, "<$ARGV[0]");
            open(MYFILE2, "<$ARGV[0]");

            # 關鍵字列數
            while(<MYFILE>){@lis=split /\|<>\|/;$fck{$lis[1]}++ }

            foreach $k (sort { $fck{$b} <=> $fck{$a} } keys %fck){
               if(++$row>$num){last; }
               $arr[@arr] = $k;
            }
           
            while(<MYFILE2>){@lis=split /\|<>\|/;
               if(grep { $arr[$_] eq $lis[1] } 0..$#arr){
                 # print "$fck{$lis[1]}:$_"; #帶 關鍵字出現次數輸出
                 print ;
               }
            }
          ' qdSearch.log






          整理 www.aygfsteel.com/Good-Game
          posted on 2009-11-11 13:36 劉凱毅 閱讀(2050) 評論(0)  編輯  收藏 所屬分類: perl
          主站蜘蛛池模板: 桃源县| 崇义县| 临武县| 遂平县| 偃师市| 应城市| 延安市| 龙南县| 高唐县| 黑山县| 德安县| 辰溪县| 瑞金市| 郓城县| 光泽县| 伊春市| 额敏县| 荥经县| 正镶白旗| 手游| 安阳县| 万州区| 双辽市| 勐海县| 宣化县| 东源县| 姜堰市| 兰州市| 乌拉特前旗| 巨鹿县| 霍邱县| 苍溪县| 夹江县| 惠水县| 合川市| 辰溪县| 东山县| 淮北市| 兰西县| 呼图壁县| 高台县|