我们如何添加一个具有字母数字输出的定界符以归档,以便我们可以界定行的固定宽度


cat file1
024170529s18687522049000005000011868443700001479N

如何将固定宽度的定界符,添加到文件行?

3Digitfield,6Digitfield,12digitfield,10Digitfield,14Digitfield,3digitfield,1digitfield,1Digitfield

gnu awk和 FIELDWIDTHS

$ awk 'BEGIN{FIELDWIDTHS="3 6 12 10 14 3 1";OFS=","}{$1=$1}1' file
024,170529,s18687522049,0000050000,11868443700001,479,N

编辑:awk版本:

$ awk '
BEGIN {
    fw="3 6 12 10 14 3 1"
    n=split(fw,a)
    OFS="," 
}
{
    for(i=1;i<=n;i++) {
        printf "%s%s", substr($0,p+1,a[i]), (i<n? OFS : ORS)
        p+=a[i] }
}' file
024,170529,s18687522049,0000050000,11868443700001,479,N

相关内容

最新更新