工作腳本處理文本shell

簡單的使用shell,而且平時學習一下,如果不動手寫的話,真是完全沒有啥用啊,

所以,代碼還是寫出來的。


把下邊的腳本代碼貼出來。怕忘記了。


涉及到數據庫連接,awk使用,日期函數,字符串模糊匹配。


[plain] view plain copy
  1. #!/bin/bash  
  2.   
  3. DIR_DATE=`date +"%Y%m%d" -d "-1 days"`  
  4. mkdir -p ~/export/$DIR_DATE  
  5.   
  6. myfunc()  
  7. {  
  8.         for x in $(ls)  
  9.         do  
  10.                 if [ -f "$x" ];then  
  11.                        if [[ "$x" =~ music_cgamev2_d* ]] && [[ "$x" =~ .*\.log.1.gz ]];then  
  12.                                                         #echo "$x";  
  13.                                                         zgrep "LoginGame" $x |grep "info" |awk -F" " '{print $2 ":" $3 ":" $9 ":" $10 ":" $11}' |awk -F":" '{print $1"   "$2":"$3":"$4"  "$6"    "$8"     "$10"    "}' >> ~/export/$DIR_DATE/denglu_94_$DIR_DATE.txt  
  14.                                                 fi  
  15.                                                 #if [[ "$x" =~ .*\.log.1.gz ]];then  
  16.                                                 #       echo "$x";  
  17.                                                 #fi  
  18.                 elif [ -L "$x" ];then  
  19.                         echo "this is a link";  
  20.                 else  
  21.                         cd "$x";  
  22.                         myfunc;  
  23.                         cd ..  
  24.                 fi  
  25.         done  
  26. }  
  27.   
  28. myfunc  



[plain] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. #! /bin/bash  
  2.   
  3. DATE=`date +"%Y_%-m_%-d" -d "-1 days" `  
  4. DIR_DATE=`date +"%Y%m%d" -d "-1 days"`  
  5. mkdir -p /data/cgame/$DIR_DATE  
  6. CONN_MYSQL="mysql ~~~~~"  
  7.   
  8.   
  9. echo "select  * from cgame_history.log_pay_$DATE;" | $CONN_MYSQL > /data/cgame/$DIR_DATE/log_pay_$DATE.txt  
  10. echo "select  * from cgame_history.log_money_$DATE;" | $CONN_MYSQL > /data/cgame/$DIR_DATE/log_money_$DATE.txt  
  11. echo "select  * from cgame_history.log_items_$DATE;" | $CONN_MYSQL > /data/cgame/$DIR_DATE/log_items_$DATE.txt  
  12. echo "select uid, name, jewel, gold, starLevel, chessCount, pay_jewel, pay_gold, FROM_UNIXTIME(traceTime-28800) from card_game.game_player order by traceTime asc;" | $CONN_MYSQL > /data/cgame/$DIR_DATE/player_$DATE.txt  
  13.   
  14. echo "select uid,stone_num,FROM_UNIXTIME( day, '%Y%m%d' ) as dates from card_game.game_anchor_rank  where FROM_UNIXTIME( day, '%Y%m%d' ) =$DIR_DATE ORDER BY stone_num desc ;" | $CONN_MYSQL > /data/cgame/$DIR_DATE/anchor_rank_$DATE.txt  
  15.   
  16. echo "select uid,stone_num,FROM_UNIXTIME(day, '%Y%m%d') as dates from card_game.game_player_rank where FROM_UNIXTIME(day,'%Y%m%d')=$DIR_DATE ORDER BY stone_num desc LIMIT 0,10;"|$CONN_MYSQL > /data/cgame/$DIR_DATE/user_rank_$DATE.txt  



寫的不好,只是實現了功能,有些東西都可以抽出來當做變量, 讓代碼更加可讀。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章