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

如何拆分文件第一列的逗号分隔值并关联对应第二列值

文本拆分与列映射实现方案

方法一:使用awk(推荐,简洁高效)

awk是处理文本列的利器,一行命令就能完成需求:

awk '{split($1, arr, ","); for (i in arr) print arr[i], $2}' input.txt

说明:

  • split($1, arr, ","):将第一列按逗号分割,存入数组arr
  • 循环遍历数组arr,逐个输出数组元素 + 第二列的对应值
  • awk默认会自动忽略列之间的多个空白符,兼容原文件中列分隔为多个空格的情况

如果原文件用制表符分隔两列,只需指定分隔符:

awk -F'\t' '{split($1, arr, ","); for (i in arr) print arr[i], $2}' input.txt

方法二:使用sed + bash管道

适合习惯shell管道组合的场景:

sed 's/\(.*\)\s\+\([^[:space:]]\+\)/echo "\1" | tr "," "\n" | xargs -I {} echo {} \2/e' input.txt

说明:

  • sed捕获每行的两部分内容:第一部分是逗号分隔的字符串,第二部分是目标值
  • 通过tr "," "\n"将逗号替换为换行,再用xargs把每个值和目标值拼接输出

方法三:使用Python(灵活扩展)

如果需要后续扩展复杂逻辑,用Python更易维护:

with open('input.txt', 'r') as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        # 只分割一次,避免第二列包含空格的情况
        left_part, right_val = line.split(maxsplit=1)
        for item in left_part.split(','):
            print(f"{item} {right_val}")

说明:

  • split(maxsplit=1)确保第二列即使包含空格也不会被拆分
  • 逐行处理,拆分第一列后循环输出每个元素与第二列的组合

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 08:32:48