作业记录
老師留得題目
http://oldboy.blog.51cto.com/2561410/1337343
首先我用了一個我最快想到辦法
用了一個超級笨的辦法 #!/bin/bash #(基礎(chǔ)) pwd=`pwd` #(臨時目錄) dir="htmldir" #(源文件地址) html="http://vote.runsky.com/2013/12/jiaoyu/" #(臨時文件1) file1="jiayou1.txt" #(臨時文件2) file2="jiayou2.txt" ############################################ #(創(chuàng)建下載目錄) if[ ! -d "${pwd}/${dir}"];then cd $pwd mkdir $dir fi ############################################ zhejiushichaxun(){ local param param=$1 if[ "$param"!= ""]; then #(a=`grep $i $param|awk -F"="'{print $2}'`) a=`grep "<span""${param}"|awk -F "<|>"'{printf $3" "}'` echo "${a}">>1.txt else echo "file or filename error at:"`date` fi } ############################################ #(循環(huán)10分鐘) whiletrue do qz=1 #(進(jìn)入下載目錄) cd ${pwd}/${dir} #(進(jìn)行文件下載) wget -c ${html} #(進(jìn)行文件分析) #(對文件進(jìn)行取出tab建.之后在取值) #echo "'s/\x09//g' index.html"|xargs sed -n >${file1} sed 's/\x09//g'index.html |grep -A 5"<li>">${file1} #(進(jìn)行一些基本賦值) #(設(shè)定需要單獨(dú)取出的行數(shù)) ts=($(grep -n "^-""${file1}"|awk -F":"'{printf $1" "}')) echo ${hs[@]} #(設(shè)定循環(huán)次數(shù)) css=`grep -n "^-""${file1}"|wc -l` for((i=0;i<="${css}";i++)) do a=$i b=`echo $(($i+1))` c=`echo ${ts[${a}]}` d=`echo ${ts[$]}` #(判斷了長度為空的時候跳過本次循環(huán)) if[ -z "$ozvdkddzhkzd"];then continue fi echo "'"${c}","$ozvdkddzhkzd"p' "${file1}""|xargs sed -n >${file2} zhejiushichaxun ${file2} rm -rf ./${file2} i=$b done sort -nr -k 3-t ":"${pwd}/${dir}/1.txt >2.txt awk -F " "'{print $3"\x09"$2}'2.txt >1.txt cat -n 1.txt >index.html #(循環(huán)讀取一段然后進(jìn)行分析) #rm -rf ${dir} rm -rf ./${file1} rm -rf ./2.txt rm -rf ./1.txt echo "取第${qz}次" qz=`echo $(($qz+1))` #(等待10分鐘) sleep 600 done經(jīng)過一晚上的思考.和觀摩了上面學(xué)長的一些做法.
想出了利用awk和for循環(huán)的辦法.來進(jìn)行解釋
fori in`curl http://vote.runsky.com/2013/12/jiaoyu/|awk -F"<|>|:" '/票數(shù)/{print$4};/redtxt/{print$3}'` #(利用for來對初始變量進(jìn)行取值) #(下載后顯示出文本,然后利用awk #awk中先用-F劃分隔符,然后利用'/票數(shù)/{print$4};/redtxt/{print$3}'進(jìn)行分別取值.這里;號代表了分開取值. //之間代表選取某個取值符號 #) do #(這里a 選進(jìn)行判斷.數(shù)字會成為0字會成為1) a=`echo $i|grep -v '[0-9]*[0-9]'|wc -l` #(判斷.如果是數(shù)字就打印 i和b如果不是就定義b等于文字.這樣就解決了打印在兩行的問題) if[ "${a}"= "0"];then echo $i $b else b=`echo $i` fi done|sort -nr |cat -n #(這里都弄完了就排序.排序之后打印行號.)轉(zhuǎn)載于:https://blog.51cto.com/maomaolinux/1337737
總結(jié)
- 上一篇: 【iHMI43 4.3寸液晶模块】dem
- 下一篇: 项目中CI缓存适配器的使用