我有一个包含 20 个字段的 csv 文件:v1:v20。有没有办法在 v5 之后添加另一个字段,即字段 2 到 5 的串联?例如,假设文件头是:
v1, v2, v3, v4, v5, v5, v7,...
a, b, c, d, e, f, g,....
我希望它看起来像这样:
v1, v2, v3, v4, v5, new.field, v5, v7,...
a, b, c, d, e, bcde, f, g,...
gawk -F ' *, *' -v OFS=',' '
{
$6 = (NR==1 ? "new.field," : $2 $3 $4 $5 ",") $6
print
}' input.csv
v1,v2,v3,v4,v5,new.field,v5,v7,...
a,b,c,d,e,bcde,f,g,....
这可能对您有用:
sed 's/,/\n,/5;h;s/\n.*//;s/[, ]//g;G;s/\([^\n]*\)\n\([^\n]*\)\n/\2, \1/' file