LINUX下把文件的其中一列作为SQL语句的条件
上一篇文章中讨论了如何把多行合并成一行【 http://blog.csdn.net/ssergsw/article/details/10094781】,这样的语句适合ID数量不是太多的情况,如果太多了,还是需要一行一条语句,按着上个文章的例子,首先是一个多行的文本:
id name price
1 name1 price1
2 name2 price2
3 name3 price3
4 name4 price4
5 name5 price5
6 name6 price6
7 name7 price7
8 name8 price8
9 name9 price9
然后根据TAB键分列,并输出"select name from tb where id =" 和第一列,然后在文件的结尾加上分号,最后重定向到文件就可以了:
sed '1d' ids.txt | awk '{print "select name from tb where id =" $1}' | sed 's/$/;/' > idsInline.sql
如果是想把ID信息放在条件中,可以
sed '1d' ids.txt | awk '{print "select name from tb where id =" $1 " and expire_time > now() and status = 0 " }' | sed 's/$/;/' > ok.sql
针对返回的结果进行排序:
cat total.urls.alipayUserId | awk -F"\t" {'print $2 "\t" $1 "\t" $3'} | sort -nr > sortedAlipayUserId.txt
更多推荐
所有评论(0)