shell脚本应用
解析乱的日志文件到临时文件中,然后用awk
1004 cd /usr/local
1005 ll
1006 cd pttmsg/
1007 ll
1008 cd msgbin-2/
1009 ll
1010 cd proxy
1011 ll
1012 cd log
1013 ll
1014 tail -1000 proxy_sub0_20160107.log
1015 grep '===ret' proxy_sub0_20160107.log
1016 grep '===ret' proxy_sub0_20160107.log > test.log
1017 cat test.log
1018 grep '~time' proxy_sub0_20160107.log > test.log
1019 grep '~time' proxy_sub0_20160106.log > test.log
1020 tail -1000 proxy_sub0_20160107.log
1021 tail -1000 proxy_sub0_20160106.log
1022 grep '~time' proxy_sub0_20160106.log > test.log 先格式化整理文件到test.log
1023 cat test.log
1053 cat test.log | awk -F '<I>' '{print $2}'
1054 cat test.log | awk -F '<I>' '{print $2}' > ceshi.log 最后格式化整理为需要的文件
1055 cat ceshi.log
scp -r root@172.16.1.21:/usr/local/pttmsg/msgbin-2/proxy/log/proxy_sub0_`date '+%Y%m%d'`.log ./log/ 远程复制文件到当前服务器目录
-------------------------------
ssh_host="root@172.16.1.40"
remote_gfile="/usr/local/pttmsg/msgbin-3/groupcall/log/gcall_sub0_${yestime}.log"
#记录临时群聊时长到用户通话时长日志文件中
if ssh $ssh_host test -e $remote_gfile; #判断远程服务器是否有该文件
-----------------------------
#line='ssrc:875640674'
#cat $gnewfile | grep $line #筛选查找
#cat $gnewfile | awk '!x[$0]++' #去除文件中重复的数据
#cat $gnewfile | grep $line | head -1 #获取第一行数据
#cat $gnewfile | awk 'END {print}' #获取最后一行
#cat $gnewfile | awk -F ':' '{print $NF}' #获取每行的最后一个数据
sql="select count(*) as count from vec_pt_useractive where time='$tmptime';"
res=$(mysql -h${host} -p${port} -u${dbuser} -p${dbpsw} ${dbname} -e "${sql}") #接收查询的结果
res0=($res) #转化为数组
[rocrocket@rocrocket programming]$ cat facebook.txt
banana:30:5.5
apple:10:2.5
pear:90:2.3
orange:20:3.4
这个文件有三列,列与列之间用冒号隔开了,第一列表示水果类型,第二列表示水果数量,第三列表示水果价格。
那么我想以水果数量来排序,也就是以第二列来排序,如何利用sort实现?
幸好,sort提供了-t选项,后面可以设定间隔符。(是不是想起了cut和paste的-d选项,共鸣~~)
指定了间隔符之后,就可以用-k来指定列数了
sort -n -k 2 -t : facebook.txt