上一篇文章中讨论了如何把多行合并成一行【 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


GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐