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

使用awk处理双文件数据:字符串转换与自定义排序实现咨询

处理方案

你可以组合awk做字段转换、sort做自定义排序实现需求,完整命令如下:

awk '{
    new_id = $1
    if (substr(new_id, 1, 1) == "Q") {
        gsub(/-/, "", new_id)
    } else {
        gsub(/[x-]/, "", new_id)
    }
    sort_prio = index("PQRS", substr(new_id, 1, 1))
    print sort_prio, new_id, $2
}' file1 file2 | sort -k1,1n -k2,2V | awk '{print $2, $3}' > outputFile

逻辑说明

  • 字段转换逻辑:判断标识符首字母是否为Q,是则仅删除连字符保留x,否则同时删除所有x和连字符,完全匹配转换规则。
  • 排序逻辑:先给不同首字母分配对应排序优先级数值,保证首字母按P→Q→R→S顺序排列;再用sort的自然版本排序(-V参数)处理同前缀标识符,自动按末尾数值升序排列,避免出现11排在2前面的字符排序问题。
  • 最后输出时剔除排序用的辅助列,只保留转换后的标识符和对应数值,输出结果和预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 19:27:02