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

Linux Shell脚本如何读取外部文件映射替换目标文件的用户ID为用户名

Shell脚本实现用户ID批量替换方案

实现思路

  • 优先读取Input_file.csv的映射规则,存入awk关联数组,键为用户ID,值为对应的用户名
  • 逐行遍历UserID.txt内容,全局替换所有匹配到的独立用户ID,避免出现部分匹配的异常
  • 直接输出替换完成后的内容,支持重定向保存为新文件

可用实现脚本

#!/bin/bash
# 校验依赖文件是否存在
if [ ! -f "UserID.txt" ] || [ ! -f "Input_file.csv" ]; then
    echo "错误:缺少必要文件UserID.txt或Input_file.csv"
    exit 1
fi

# awk完成映射加载和全局替换
awk '
# 加载ID-用户名映射关系
NR == FNR {
    id_map[$1] = $2
    next
}
# 逐行替换所有匹配的ID
{
    for (id in id_map) {
        # 匹配独立ID,避免部分匹配错误
        gsub("\\<" id "\\>", id_map[id])
    }
    print
}
' Input_file.csv UserID.txt

使用说明

  • 将上述代码保存为replace_id.sh
  • 给脚本赋予执行权限:chmod +x replace_id.sh
  • 直接执行可输出替换结果,如需保存到文件可执行:./replace_id.sh > 替换结果.txt

输出效果

执行后输出内容与预期完全一致:

Group1 = onetofour,ten2,tennyfour
group2 = threefouteen,thirtytwo,Sixtytwo
onetofour = Read
Sixtytwo = Write

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 18:54:02