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

使用Unix工具(awk/sed/bash)截断第三列第四个下划线后内容

文本列处理实现方案

你可以通过awk或sed两种方式实现仅修改第三列的需求,两种方案的适配场景如下:

方案1:使用awk(推荐,逻辑更清晰)

awk天然支持按列处理文本,无需编写复杂的行匹配正则,操作命令如下:

# 处理后输出到新文件,避免原文件损坏
awk '{sub(/_i.*/, "", $3); print $0}' 原文件.txt > 处理后文件.txt

# GNU Awk 4.1及以上版本支持直接原地修改,和sed -i效果一致
awk -i inplace '{sub(/_i.*/, "", $3); print $0}' 原文件.txt

命令说明:

  • 内置函数sub(匹配规则, 替换内容, 目标字段)仅对指定的第三列$3做替换
  • 替换规则/_i.*/匹配第三列中_i及之后的所有内容,替换为空即可实现截断效果
  • 自动适配空格、制表符等多种空白分隔符,无需额外调整正则

方案2:使用sed实现

如果需要用sed完成,需要编写正则匹配定位到第三列的位置,仅对第三列内容做替换:

# 原地修改文件
sed -i 's/^\([^[:space:]]\+[[:space:]]\+[^[:space:]]\+[[:space:]]\+[^[:space:]]\+\)_i[^[:space:]]*/\1/' 原文件.txt

命令说明:

  • 正则中[^[:space:]]\+匹配连续的非空白字符,对应单列内容
  • [[:space:]]\+匹配列之间的任意空白(单个/多个空格、制表符都可适配)
  • 前两个捕获组匹配前两列及分隔符,第三个捕获组匹配第三列_i之前的内容,最后用捕获的内容替换整段匹配结果,实现仅截断第三列的效果

内容的提问来源于stack exchange,提问作者Nina M Maryn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 23:06:08