awk 一行从两列创建第三列字段



查找一个 awk 一行,基于第二个字段创建新的第三个字段。

起始数据:

column1,test.columna
column2,test1.columnb
column3,test2.columnc

结束数据,其中 test.columna(第 2 个字段)现在在用","分隔的新第三个字段中为"columnatest"(对于第一行)。

column1,test.columna,columnatest
column2,test1.columnb,columnbtest1
column3,test2.columnc,columnctest2

获取第三列本身足够容易:

awk -F, '{print $2}' a | awk -F. '{print $2$1}'
columnatest
columnbtest1
columnctest2

难以组合所有三个字段。

$ awk 'BEGIN{FS=OFS=","} {split($2,f,/./); print $0, f[2] f[1]}' file
column1,test.columna,columnatest
column2,test1.columnb,columnbtest1
column3,test2.columnc,columnctest2
 echo '
column1,test.columna
column2,test1.columnb
column3,test2.columnc' | 
<小时 />
mawk -F, 'sub("$",FS substr($2 $2, 1 + index($2, "."), length($2)-1))'
<小时 />
column1,test.columna,columnatest
column2,test1.columnb,columnbtest1
column3,test2.columnc,columnctest2

最新更新