Awk 我们如何向具有字母数字输出的文件中添加分隔符,以便对固定宽度的行进行分隔

Awk 我们如何向具有字母数字输出的文件中添加分隔符,以便对固定宽度的行进行分隔,awk,Awk,如何在文件行中添加固定宽度的分隔符, 3数字字段、6数字字段、12数字字段、10数字字段、14数字字段、3数字字段、1数字字段 cat file1 024170529s18687522049000005000011868443700001479N 编辑:awk版本: $ awk 'BEGIN{FIELDWIDTHS="3 6 12 10 14 3 1";OFS=","}{$1=$1}1' file 024,170529,s18687522049,0000050000,118684437000

如何在文件行中添加固定宽度的分隔符


3数字字段、6数字字段、12数字字段、10数字字段、14数字字段、3数字字段、1数字字段

cat file1

024170529s18687522049000005000011868443700001479N
编辑:awk版本:

$ awk 'BEGIN{FIELDWIDTHS="3 6 12 10 14 3 1";OFS=","}{$1=$1}1' file
024,170529,s18687522049,0000050000,11868443700001,479,N
$awk'
开始{
fw=“3 6 12 10 14 3 1”
n=分割(fw,a)
OFS=“,”
}
{

对于(i=1;i)和您想要的结果是什么?此文件的行应具有固定的宽度清除,宽度大小是多少?这应该是您的问题,而不是在注释中。必须获取输入字符串并显示其转换版本(在开始时)谢谢,James,似乎某些语法仍然需要修复系统OP17:09:10[mau bss app:/opt/redknee/dist/TEST_export_TPS]$awk'BEGIN{FIELDWIDTHS=“3 6 12 10 14 3 1”;OFS=“,”}{$1=$1}1'new.txt awk:1行附近语法错误awk:1GNU awk:仅在1GNU awk行附近退出,您使用的是哪一个awk?我在solaris机器上,似乎它也没有使用gawk命令17:14:29[mau bss app:/opt/redknee/dist/TEST_export_TPS]$gawk'BEGIN{FIELDWIDTHS=“3 6 12 10 14 3 1”;OFS=“,”}{$1=$1}1'new.txt bash:gawk:command not found 17:15:48[mau bss app:/opt/redknee/dist/TEST\u export\u TPS]$
$ 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