【发布时间】:2017-03-10 21:17:03
【问题描述】:
我有几行,想把这行分成 5 行,然后为 MySQL IN () 查询内爆。
到此为止我已经成功了
awk '{ printf "%s", $0; if (NR % 5 == 0) print ""; else printf " " }
例如,我想要下面的这些行
1
2
3
4
5
6
成为
1,2,3,4,5
6
如果我用这个
awk '{ printf "%s", $0; if (NR % 5 == 0) print ""; else printf "," }
如果所有行都不能被 5 整除,则输出的尾行将有 ,
更新
以前的标题是 awk 而不是 bash,但事实证明有比 awk 更简单的解决方案。我的目标是做这样的事情
$seq 12 | pr -7ats, | xargs -I X echo "SELECT * FROM Table IN (X)" #or execute mysql
SELECT * FROM Table WHERE id IN (1,2,3,4,5,6,7)
SELECT * FROM Table WHERE id IN (8,9,10,11,12)
【问题讨论】: