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

Ubuntu下使用awk基于两列条件给CSV新增Labelled列求助

解决CSV新增标记列的awk命令问题

你的命令存在几个关键问题,导致无法正确生成目标列:

  • 未指定CSV的逗号分隔符,awk默认用空白符分割字段,导致第22、23列的识别完全错误
  • 逻辑判断用了||(或),但需求是同时满足两个条件,应该用&&(且)
  • 表头命名错误,应该是Labelled而非merge,且未保持逗号分隔格式
  • 未处理不满足条件的行,CSV结构会混乱

正确的awk命令

BEGIN{FS=OFS=","} 
NR==1 {
    $24="Labelled"
    print
    next
}
{
    $24 = ($22 == "Malicious" && $23 == "C&C-FileDownload") ? 1 : ""
    print
}
Malware-44-1.csv > test1.csv

命令说明

  1. BEGIN{FS=OFS=","}:强制awk用逗号作为输入和输出的字段分隔符,适配CSV格式
  2. 表头行处理:给第24列设置正确的表头Labelled,打印后跳过后续逻辑
  3. 数据行处理:用三元运算符判断,当第22列是Malicious且第23列是C&C-FileDownload时,第24列设为1,否则留空(如果需要默认值0,把""改成0即可)
  4. 最后打印每一行,保证CSV格式完整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:48:24