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

如何使用sed匹配line1_shortname行,保留行首空格与6位数字删除冗余内容

sed 实现指定行内容修改方案

你可以使用以下sed命令完成需求,该命令会保留行首所有空白,仅处理包含line1_shortname:的行:

sed -E '/line1_shortname:/ s/([[:digit:]]{6})[^"]+"/\1"/' 目标文件路径

命令逻辑说明

  • /line1_shortname:/ 匹配规则:仅对包含该字符串的行执行替换操作
  • 替换规则s/([[:digit:]]{6})[^"]+"/\1"/:
    • 首先捕获行内出现的6位连续数字,存入分组1
    • 匹配6位数字之后、下一个双引号之前的所有非双引号内容,连带匹配到的双引号
    • 替换为「分组1的6位数字+双引号」,实现删除中间多余内容的效果
  • 命令全程不触碰行首到6位数字之前的内容,因此会完整保留所有行首空白

不同环境原地修改文件的命令

如果需要直接修改原文件,可根据运行环境添加-i参数:

  • Linux 环境:
    sed -Ei '/line1_shortname:/ s/([[:digit:]]{6})[^"]+"/\1"/' 目标文件路径
    
  • macOS 环境:
    sed -Ei '' '/line1_shortname:/ s/([[:digit:]]{6})[^"]+"/\1"/' 目标文件路径
    

注意:建议先不加-i参数运行命令,确认终端输出的修改结果符合预期后,再添加-i参数执行原地修改,避免误改文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:48:05