Shell 使用awk将多行中的输出转换为具有单独列的单行

Shell 使用awk将多行中的输出转换为具有单独列的单行,shell,awk,Shell,Awk,我有一个输出,如下所示,我希望将其转换为单行(无空格) 我使用下面的命令 awk 'NR%3{printf "%s,",$0;next;}1' 但它会像这样返回我的输出 vol sysvol : 25654 , vol sysvol : 39% , vol sysvol : 820928KB vol vol01 : 502 , vol vol01 : 0% , vol vol01 : 16064KB vol vol02 : 65491 , vol vol02 : 99% , vol vo

我有一个输出,如下所示,我希望将其转换为单行(无空格)

我使用下面的命令

awk 'NR%3{printf "%s,",$0;next;}1'
但它会像这样返回我的输出

 vol sysvol : 25654 , vol sysvol : 39% , vol sysvol : 820928KB
 vol vol01 : 502 , vol vol01 : 0% , vol vol01 : 16064KB
 vol vol02 : 65491 , vol vol02 : 99% , vol vol02 : 2095712KB
 DB : 91647 , DB : 46% , DB : 2932704KB
vol sysvol: 25654 , 39%  , 820928KB
vol vol01 : 502 , 0% , 16064KB
vol vol02 : 65491 ,  99% ,  2095712KB
DB : 91647 , 46% ,  2932704KB
如我所愿,输出如下

 vol sysvol : 25654 , vol sysvol : 39% , vol sysvol : 820928KB
 vol vol01 : 502 , vol vol01 : 0% , vol vol01 : 16064KB
 vol vol02 : 65491 , vol vol02 : 99% , vol vol02 : 2095712KB
 DB : 91647 , DB : 46% , DB : 2932704KB
vol sysvol: 25654 , 39%  , 820928KB
vol vol01 : 502 , 0% , 16064KB
vol vol02 : 65491 ,  99% ,  2095712KB
DB : 91647 , 46% ,  2932704KB

请帮助。

awk
营救

awk -F: -v OFS=, '{if (NR%3==1) printf "%s : %s",$1,$2 OFS;
                   else printf "%s", $2 (NR%3?OFS:ORS)}' file  

vol sysvol  :  25654, 39%, 820928KB                     
vol vol01  :  502, 0%, 16064KB                                     
vol vol02  :  65491, 99%, 2095712KB                             
DB  :  91647, 46%, 2932704KB  

awk
救援

awk -F: -v OFS=, '{if (NR%3==1) printf "%s : %s",$1,$2 OFS;
                   else printf "%s", $2 (NR%3?OFS:ORS)}' file  

vol sysvol  :  25654, 39%, 820928KB                     
vol vol01  :  502, 0%, 16064KB                                     
vol vol02  :  65491, 99%, 2095712KB                             
DB  :  91647, 46%, 2932704KB