Terminal command equivalent of PHP implode when combining lines

后端 未结 5 1985
不知归路
不知归路 2020-12-21 07:40

I have a couple of lines and want to group the line into 5 and then implode it for MySQL IN () query.

I have made it out until this

awk          


        
5条回答
  •  自闭症患者
    2020-12-21 08:16

    You can do:

    awk 'NR%5==0{print s","$0; s=""; next} {if (length(s)>0){ s=s","$0 } else s=$0} END {print s}'
    

    Test it:

    $ seq 1 6 | awk 'NR%5==0{print s","$0; s=""; next} {if (length(s)>0){ s=s","$0 } else s=$0} END {print s}'
    1,2,3,4,5
    6
    $ seq 1 12 | awk 'NR%5==0{print s","$0; s=""; next} {if (length(s)>0){ s=s","$0 } else s=$0} END {print s}'
    1,2,3,4,5
    6,7,8,9,10
    11,12
    

提交回复
热议问题