在文件中添加新列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在文件中添加新列相关的知识,希望对你有一定的参考价值。

如何使用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

以上是关于在文件中添加新列的主要内容,如果未能解决你的问题,请参考以下文章

如何将新列动态添加到 bigquery 中已存在的表..?

如何在 CSV 文件中添加新列?

如何使用apache commons将新列添加到csv文件中

尝试将 Vlookup 片段添加到我的 Excel 宏

从Finish TIME值中减去Start TIME值,并在Unix文件中将值作为新列添加到CSV文件中

如何使用 apache commons 将新列添加到 csv 文件