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

如何用awk在第2-5列精准匹配替换字符串(Bash脚本)

解决方案:用awk批量修改指定列的精准匹配字符串

这事儿用awk完全能搞定,写法还挺简洁,直接给你能跑的bash脚本:

awk '{
    # 循环遍历第2到第5列
    for (i=2; i<=5; i++) {
        # 仅当列内容精准匹配Old_word时替换
        if ($i == "Old_word") {
            $i = "New_word"
        }
    }
    # 输出修改后的整行
    print $0
}' your_input_file.txt > output_file.txt

代码细节解释:

  • for (i=2; i<=5; i++):精准锁定要处理的列范围,完全避开第1列,符合你的需求。
  • if ($i == "Old_word"):这里是严格相等匹配,只有当整列内容和Old_word完全一致时才会触发替换,不会出现模糊匹配的情况。
  • print $0:输出修改后的整行,保证原文件的列格式(默认用空白符分隔)完全保留。

适配非空白分隔的文件(比如CSV):

如果你的文本是逗号、制表符这类特定分隔符,只需要在awk开头指定分隔符参数即可,比如处理逗号分隔的CSV文件:

awk -F',' -v OFS=',' '{
    for (i=2; i<=5; i++) {
        if ($i == "Old_word") {
            $i = "New_word"
        }
    }
    print $0
}' your_input_file.csv > output_file.csv

这样处理后,第1列哪怕出现Old_word也会原封不动,只有2-5列的精准匹配项会被替换成新字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:45:08