根据现有列的值添加新列

时间:2019-05-11 19:09:16

标签: linux text awk processing

我正在尝试将定界文件转换为Linux中的数据表。某些列中值的含义取决于单独列中的值。如何根据列的值创建其他列?

根据第2列的值,即00或01,第3列和第4列的解释是不同的。因此,如果我具有以下值。

A1,00,N1,T1
A1,01,N2,T2
A2,00,N3,T3
A2,01,N4,T4

预期结果应如下。请注意,我现在有两个新列。

A1,00,N1,T1,N2,T2
A2,01,N3,T3,N4,T4

1 个答案:

答案 0 :(得分:1)

$ awk -F, '                                #1
      {A[$1] = A[$1] FS $3 FS $4}          #2
  END {for(i in A) print i FS "00" A[i]}   #3
' file
A1,00,N1,T1,N2,T2
A2,00,N3,T3,N4,T4
  1. 将字段分隔符设置为逗号。
  2. 在每一行上,将Array[first-column]设置为其当前值,然后设置第三和第四列。
  3. 最后,对于每个索引,打印索引名称,逗号,字符串“ 00”以及该索引的值。

A[A1]的最终值为,N1,T1,N2,T2

相关问题