作業履歴


先生の残した問題
http://oldboy.blog.51cto.com/2561410/1337343
まず一つ使ってみました。一番早く方法を考えます。
          
#!/bin/bash
#(  )
pwd=`pwd`
#(    )
dir="htmldir"
#(     )
html="http://vote.runsky.com/2013/12/jiaoyu/"
#(    1)
file1="jiayou1.txt"
#(    2)
file2="jiayou2.txt"
############################################
#(      )
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
}
############################################
#(  10  )
whiletrue
do
qz=1
#(      )
cd ${pwd}/${dir}
#(      )
wget -c ${html}
#(      )
#(       tab .     )
#echo "'s/\x09//g' index.html"|xargs sed -n >${file1}
sed 's/\x09//g'index.html |grep -A 5"<li>">${file1}
#(        )
#(           )
ts=($(grep -n "^-""${file1}"|awk -F":"'{printf $1" "}'))
echo ${hs[@]}
#(      )
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[${b}]}`
#(                )
if[ -z "${d}"];then
continue
fi
echo "'"${c}","${d}"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
#(            )
#rm -rf ${dir}
rm -rf ./${file1}
rm -rf ./2.txt
rm -rf ./1.txt
echo "  ${qz} "
qz=`echo $(($qz+1))`
#(  10  )
sleep 600
done
一晩の考えを通して、上の先輩のやり方を見学しました。
awkとforサイクルを利用する方法を考えました。説明します。
fori in`curl http://vote.runsky.com/2013/12/jiaoyu/|awk -F"<|>|:" '/  /{print$4};/redtxt/{print$3}'`
#(  for          )
#(        ,    awk
#awk   -F    ,    '/  /{print$4};/redtxt/{print$3}'      .  ;        . //            
#)
do
#(  a      .     0    1)
a=`echo $i|grep -v '[0-9]*[0-9]'|wc -l`
#(  .         i b       b    .              )
if[ "${a}"= "0"];then
echo $i $b
else
b=`echo $i`
fi
done|sort -nr |cat -n
#(         .        .)