作業履歴
先生の残した問題
http://oldboy.blog.51cto.com/2561410/1337343
まず一つ使ってみました。一番早く方法を考えます。
awkとforサイクルを利用する方法を考えました。説明します。
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
#( . .)