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

Linux下使用AWK批量替换CSV第一列内容的方法求助

用AWK批量修改第一列内容

你可以用以下AWK命令完成需求,兼顾表头保留和数据替换:

awk 'NR==1{print; next} $1=="N"{$1="Inbound"} $1=="V"{$1="Outbound"} 1' your_file.csv > modified_file.csv

命令解释:

  • NR==1{print; next}:识别第一行(表头),直接打印后跳过后续处理,避免表头被修改
  • $1=="N"{$1="Inbound"}:当第一列的值是N时,将其替换为Inbound
  • $1=="V"{$1="Outbound"}:当第一列的值是V时,将其替换为Outbound
  • 末尾的1:AWK中1代表逻辑真,会触发默认的print操作,输出修改后的整行

直接修改原文件的方式(谨慎操作):

如果不想生成新文件,直接覆盖原文件,可以借助临时文件:

awk 'NR==1{print; next} $1=="N"{$1="Inbound"} $1=="V"{$1="Outbound"} 1' your_file.csv > temp.csv && mv temp.csv your_file.csv

或者安装moreutils包后用sponge命令(更安全,避免原文件损坏):

sudo apt install moreutils
awk 'NR==1{print; next} $1=="N"{$1="Inbound"} $1=="V"{$1="Outbound"} 1' your_file.csv | sponge your_file.csv

注:你的示例文件用空格分隔字段,AWK默认以空白字符作为字段分隔符,正好匹配需求;如果是标准逗号分隔的CSV,只需在命令开头加上-F','指定分隔符即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 05:20:23