如何使用awk代码向文件添加新列?
original.file
F1 F2 F3 ..F10
将F11添加到original.file
F1 F2 F3 ..F10 F11
尝试:
awk 'BEGIN{getline to_add < "f3"}{print $0,to_add}' f
读取要从文件“f3”添加的列并将其保存在变量to_add中。之后,它将列添加到文件f的每一行。
HTH Chris
awk '{print $0, "F11"}' original.file
如果要向文件添加列,可以执行以下操作。
注释:我们假设字段分隔符FS
等于字符串"fs"
。您可以用任何东西替换它,或者如果您只是使用它
作为字段分隔符,您可以删除
BEGIN{FS=OFS="fs"}
参与以下任何一种解决方案。
在开头添加一列:
awk 'BEGIN{FS=OFS="fs"}{print value OFS $0}' file
最后添加一列:
awk 'BEGIN{FS=OFS="fs"}{print $0 OFS value}' file
在列n
之前添加一列:
awk 'BEGIN{FS=OFS="fs"}{$n = value OFS $n}1' file
列n
后添加列:
awk 'BEGIN{FS=OFS="fs"}{$n = $n OFS value}1' file
在每列n1
<n2
<... <nm
之前添加一列:(从后面开始)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = value OFS $(a[i])}1' file
或不同的价值观
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = v[i] OFS $(a[i])}1' file
在每个列n1
<n2
<... <nm
之后添加一列:(从后面开始)
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS value}1' file
或不同的价值观
awk 'BEGIN{FS=OFS="fs"; split("n1,n2,n3,...,nm",a,","); split("value1,value2,...,valuem",v,",")}
{for(i=m;i>0;--i) $(a[i]) = $(a[i]) OFS v[i]}1' file