Linux循环sql调用,shell中使用SQL实现查询

shell中使用SQL实现查询

先把文本进行格式处理,然后以空格为分隔符,取第二个空格后的字串,排序,去重,再降序排列,取前5个

arr=($(cat 0100055F_Detail.txt|sed -e '/:/d'|awk -F ' ' '{print$2}'|sort|uniq -c|sort -nr|head -5|awk '{print $2}'))

len=${#arr[@]}  获取数组长度

for((i=0;i

do

echo ${arr[$i]}

mysql -uroot -p123456 -e "select location from IPLocation.IPLocation where IP_address='${arr[$i]}'"|sed 's/\t/,/g' >> table.csv   执行查询:-u后是用户名,-p后事密码,-e表示执行;

done

cat table.csv|sed -e '/location/d'>table1.csv

paste -d ',' result.csv table1.csv >last.csv 两个文件按列合并,并且两文件的结合列中用逗号分隔。

相关文档:

--基于时间SQL函数--

getdate() --返回当前系统日期和时间。

DateAdd --在向指定日期加上一段时间的基础上,返回新的 datetime 值。

DATEADD ( datepart , number, da

你可能感兴趣的:(Linux循环sql调用)