如果要向文件中添加列,可以执行以下操作。
备注:我们假设字段分隔符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