awk拆分列但是substr部分有问题

时间:2017-04-03 09:41:31

标签: awk

我有一个awk代码按列拆分文件并将输出打印到新文件名。

awk -F"|" 'NR==1 {h=substr($0, index($0,$5)); next} 
            {file= path ""$1""$2"_"$3"_"$4"_03042017.csv"; print (a[file]++?"": "DM9 03042017" ORS h ORS) substr($0, index($0,$5)) > file} 
             END{for(file in a) print "EOF " a[file] > file}'

因为我使用substr($ 0,index($ 0,$ 5)所以新输出只有数据从第五列开始,其余的。它工作正常,除非输入数据我有相同的值。

例如,

product | ID | Branch | Office | Type | ....
ABC     | 12 | KL     |  GH    |  Z   | ....

对于上面的例子,代码运行良好,因为数据输入不同。

product | ID | Branch | Office | Type | ....
ABC     | 12 | KK     |  KK    |  Z   | ....

但是,如果我有像第二个例子那样的数据输入,我对第三和第四列有相同的值数据,代码不能正常工作。我没有获得输出开始和第五列等等,而是获得了第三列的结果。

所以,我怀疑因为第三和第四的数据输入是相同的,所以当我使用substr时它停在第三行。

有人可以帮我解决这个问题吗?很抱歉很长的帖子,如果你们能给我一些想法,我会非常感激。谢谢。

1 个答案:

答案 0 :(得分:1)

如果结构像样本一样固定(固定长度字段)

$('#jQmyCases').DataTable({ 
    //... All the required options are here ...
    // Fetch data from REST API
});