You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下如何给CSV添加列名为Score、值全为9的新列

处理带表头CSV新增固定列的Shell实现方法

问题场景

现有首行为表头的CSV文件,原始内容如下:

"Gene1","Gene2"
"G1","G2"
"G2","G8"

需要新增一列,新列列名为"Score",所有数据行该列取值固定为9,处理完成后的目标文件内容如下:

"Gene1","Gene2","Score"
"G1","G2",9
"G2","G8",9

此前使用的awk命令存在缺陷:

awk -F ',' -v OFS=',' '{ $(NF+1) = 9; print }' infile.csv > outfile.csv

该命令会给所有行(包括表头行)的新增列都赋值为9,无法给表头行设置正确的列名"Score"。

正确实现命令

通过awk内置的行号变量NR区分表头行和数据行,分别处理即可:

awk -F ',' -v OFS=',' 'NR==1{$(NF+1)="\"Score\""; print; next} {$(NF+1)=9; print}' infile.csv > outfile.csv

命令逻辑说明

  • -F ',':指定输入内容的字段分隔符为逗号
  • -v OFS=',':指定输出内容的字段分隔符为逗号,保证输出符合CSV格式
  • NR==1分支:匹配文件第一行(即表头行),在该行末尾新增值为"Score"(带CSV要求的双引号)的字段,打印该行后通过next跳过后续逻辑,直接处理下一行
  • 数据行分支:匹配除表头外的所有行,统一在末尾新增值为9的字段后打印

内容的提问来源于stack exchange,提问作者Christin Canavati

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 11:15:29