组合行时终端命令等效于PHP内爆

Pet*_*rus 3 bash terminal awk

我有几行,并希望将该行分组为5,然后将其内爆以进行MySQL IN ()查询.

直到这个我已经做到了

awk '{ printf "%s", $0; if (NR % 5 == 0) print ""; else printf " " }
Run Code Online (Sandbox Code Playgroud)

例如,我想在下面这些行

1
2
3
4
5
6
Run Code Online (Sandbox Code Playgroud)

成为

1,2,3,4,5
6
Run Code Online (Sandbox Code Playgroud)

如果我用这个

awk '{ printf "%s", $0; if (NR % 5 == 0) print ""; else printf "," }
Run Code Online (Sandbox Code Playgroud)

,如果所有行都不能被5整除,那么输出将在尾随行中

UPDATE

以前的标题是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)
Run Code Online (Sandbox Code Playgroud)

Sun*_*eep 5

pr 是这个工具

$ seq 6 | pr -5ats,
1,2,3,4,5
6

$ seq 18 | pr -5ats, 
1,2,3,4,5
6,7,8,9,10
11,12,13,14,15
16,17,18
Run Code Online (Sandbox Code Playgroud)