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

在Bash中如何用一列取值拆分另一列字符串并过滤输出目标结果

解决方案

直接用awk一行命令即可实现需求,代码如下:

awk '{split($2, arr, ","); res = arr[$3]; if(res !~ /\*/) print $1, res}' input.txt

如果你的输入表格是严格制表符分隔、需要输出也保留制表符格式,可以指定字段分隔符:

awk 'BEGIN{FS=OFS="\t"} {split($2, arr, ","); res = arr[$3]; if(res !~ /\*/) print $1, res}' input.txt

实现逻辑

  • 用split函数把第二列按英文逗号切割为数组arr
  • 按第三列的序号从数组中提取对应字段存入res
  • 判断提取结果是否包含*,不包含的话输出第一列和提取结果
    经测试该命令输出完全匹配你给出的预期结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:54:03