awk处理案例二十一--实现字符串拆分

时间:2021-11-09 01:32:33

【场景】

如何将字符串“85M21505-001,LWL50JB5EB7N,LWL50JB5EBBN,85M21505-013,85M21505-015,LWL50JB5EBGN”拆分为平均长度小于等于40的行,以逗号拆分。因为表的某列栏位长度是40,
插入会超过范围,想通过拆分为几行的方式插入,能不能实现这样的效果,求大神指点!!! 拆分的结果如下: 85M21505-001,LWL50JB5EB7N,LWL50JB5EBBN,(每一行长度不超过40) 85M21505-013,85M21505-015,LWL50JB5EBGN

 【代码实现】

echo "85M21505-001,LWL50JB5EB7N,LWL50JB5EBBN,85M21505-013,85M21505-015,LWL50JB5EBGN" |awk '{len=split($0,a,",");for(i=1;i<=len;i++){s=s "," a[i];if(length(s)<=40)p=p "," a[i];else{print p;p=a[i];s=""}}print p}'
,85M21505-001,LWL50JB5EB7N,LWL50JB5EBBN
85M21505-013,85M21505-015,LWL50JB5EBGN