Bash 在逗号数后添加新行

Bash 在逗号数后添加新行,bash,scripting,sed,awk,Bash,Scripting,Sed,Awk,我排了这么长的队: kvm1.example.corp,18:18:48,x86_64,16,11,11,0,0,0,0,0,11,0,4.6,99056376,4980736,4980736,5450000000,1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,3,r-80-VM,430000000.,0.3601

我排了这么长的队:

kvm1.example.corp,18:18:48,x86_64,16,11,11,0,0,0,0,0,11,0,4.6,99056376,4980736,4980736,5450000000,1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,3,r-80-VM,430000000.,0.360175562786,131072,0,0,0,208,0,5,i-2-81-VM,10000000.,0.00837617587873,1048576,1,0,0,0,0,6,r-83-VM,430000000.,0.360175562786,131072,0,0,0,156,0,7,i-3-82-VM,710000000.,0.59470848739,524288,0,0,0,0,0,8,r-85-VM,410000000.,0.343423211028,131072,0,0,0,208,0,11,i-3-84-VM,710000000.,0.59470848739,524288,0,0,0,0,0,12,i-2-79-VM,690000000.,0.577956135633,524288,0,0,2,0,0,13,r-87-VM,420000000.,0.351799386907,131072,0,0,0,156,0,14,i-3-88-VM,730000000.,0.611460839147,524288,0,0,2,0,0
我试图得到这样的输出

1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,
2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,
3,r-80-VM,430000000.,0.360175562786,131072,0,0,0,208,0,
5,i-2-81-VM,10000000.,0.00837617587873,1048576,1,0,0,0,0,
6,r-83-VM,430000000.,0.360175562786,131072,0,0,0,156,0,
7,i-3-82-VM,710000000.,0.59470848739,524288,0,0,0,0,0,
8,r-85-VM,410000000.,0.343423211028,131072,0,0,0,208,0,
11,i-3-84-VM,710000000.,0.59470848739,524288,0,0,0,0,0,
12,i-2-79-VM,690000000.,0.577956135633,524288,0,0,2,0,0,
13,r-87-VM,420000000.,0.351799386907,131072,0,0,0,156,0,
14,i-3-88-VM,730000000.,0.611460839147,524288,0,0,2,0,0
我不确定在删除标题后,在第9个逗号后添加新行时应该采取哪种策略?

awk-F'{for(col=19;colawk -F, '{for (col = 19; col < NF; col += 10) {
           for (i = 0; i < 10; i++) { printf("%s,", $(col+i)); }
           printf "\n"; }
         }'
对于(i=0;i<10;i++){printf(“%s,”,$(col+i));} printf“\n”} }'
使用
sed更简单

$ sed -r 's/([^,]+,){18}//;s/(([^,]+,){10})/\1\n/g' file 
1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,
2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,
3,r-80-VM,430000000.,0.360175562786,131072,0,0,0,208,0,
5,i-2-81-VM,10000000.,0.00837617587873,1048576,1,0,0,0,0,
6,r-83-VM,430000000.,0.360175562786,131072,0,0,0,156,0,
7,i-3-82-VM,710000000.,0.59470848739,524288,0,0,0,0,0,
8,r-85-VM,410000000.,0.343423211028,131072,0,0,0,208,0,
11,i-3-84-VM,710000000.,0.59470848739,524288,0,0,0,0,0,
12,i-2-79-VM,690000000.,0.577956135633,524288,0,0,2,0,0,
13,r-87-VM,420000000.,0.351799386907,131072,0,0,0,156,0,
14,i-3-88-VM,730000000.,0.611460839147,524288,0,0,2,0,0
在bash中:

(
  IFS="," read -a fields <<< "$longline"
  set -- "${fields[@]:18}"
  IFS=","
  while (( $# > 0 )); do
    echo "${*:1:10}"
    shift 10
  done
)
(
IFS=“,”在perl中读取-a字段:

perl -F, -lane 'for($min=18;$min<scalar(@F);$min+=10){print join ",",@F[$min..$min+10]}'

perl-F,-lane'($min=18;$min)谢谢你,我正在努力跟上awk,干得好!非常感谢!
> echo "kvm1.example.corp,18:18:48,x86_64,16,11,11,0,0,0,0,0,11,0,4.6,99056376,4980736,4980736,5450000000,1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,3,r-80-VM,430000000.,0.360175562786,131072,0,0,0,208,0,5,i-2-81-VM,10000000.,0.00837617587873,1048576,1,0,0,0,0,6,r-83-VM,430000000.,0.360175562786,131072,0,0,0,156,0,7,i-3-82-VM,710000000.,0.59470848739,524288,0,0,0,0,0,8,r-85-VM,410000000.,0.343423211028,131072,0,0,0,208,0,11,i-3-84-VM,710000000.,0.59470848739,524288,0,0,0,0,0,12,i-2-79-VM,690000000.,0.577956135633,524288,0,0,2,0,0,13,r-87-VM,420000000.,0.351799386907,131072,0,0,0,156,0,14,i-3-88-VM,730000000.,0.611460839147,524288,0,0,2,0,0" | perl -F, -lane 'for($min=18;$min<scalar(@F);$min+=10){print join ",",@F[$min..$min+10]}' 
1,s-75-VM,460000000.,0.385304090422,262144,0,0,3,743,0,2
2,v-30-VM,450000000.,0.376927914543,1048576,1,0,6,7676,4765,3
3,r-80-VM,430000000.,0.360175562786,131072,0,0,0,208,0,5
5,i-2-81-VM,10000000.,0.00837617587873,1048576,1,0,0,0,0,6
6,r-83-VM,430000000.,0.360175562786,131072,0,0,0,156,0,7
7,i-3-82-VM,710000000.,0.59470848739,524288,0,0,0,0,0,8
8,r-85-VM,410000000.,0.343423211028,131072,0,0,0,208,0,11
11,i-3-84-VM,710000000.,0.59470848739,524288,0,0,0,0,0,12
12,i-2-79-VM,690000000.,0.577956135633,524288,0,0,2,0,0,13
13,r-87-VM,420000000.,0.351799386907,131072,0,0,0,156,0,14
14,i-3-88-VM,730000000.,0.611460839147,524288,0,0,2,0,0,