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

按file1.txt顺序匹配输出file2.txt对应内容的技术需求

需求与解决方案

需求说明

现有两个文件:

  • file1.txt:按固定顺序存放的SRR编号列表,内容如下:
SRR1071717
SRR1079830
SRR1081765
SRR1085402
SRR1086236
SRR1092208
SRR1093930
SRR1097296
SRR1099957
SRR1120296
  • file2.txt:SRR编号与性别的映射(逗号分隔),内容如下:
SRR1120296,female
SRR1099957,male
SRR1097296,female
SRR1093930,female
SRR1092208,female
SRR1086236,female
SRR1085402,male
SRR1081765,male
SRR1079830,male
SRR1071717,male

要求:严格保留file1.txt的原有顺序,输出对应的SRR编号及性别信息,不能使用sort命令(会打乱顺序),且两个文件行数相同,期望输出如下:

SRR1071717  male
SRR1079830  male
SRR1081765  male
SRR1085402  male
SRR1086236  female
SRR1092208  female
SRR1093930  female
SRR1097296  female
SRR1099957  male
SRR1120296  female

解决方案

使用awk命令即可实现,核心思路是先将file2的映射关系存入数组,再按file1的顺序逐个匹配输出:

awk -F ',' 'NR==FNR{arr[$1]=$2; next} {print $0, arr[$0]}' file2.txt file1.txt

命令解释

  • -F ',':指定字段分隔符为逗号,用于解析file2的内容
  • NR==FNR:当处理第一个文件(file2.txt)时执行此块:
    • arr[$1]=$2:将SRR编号作为数组下标,性别作为对应值存入数组arr
    • next:跳过后续语句,继续处理file2的下一行
  • 处理第二个文件(file1.txt)时,print $0, arr[$0]:输出当前行的SRR编号,以及数组中对应的性别信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:17:10