查找一个 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