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

如何在Bash脚本中用正则表达式替换字符串?终端有效脚本失效

问题排查与解决:Bash脚本中字符串替换移除日期失效

核心排查方向(基于你推测的拼写错误)

  • 核对脚本中变量名拼写:确认是否和测试示例一致,比如是否误写NAME为其他变量名
  • 检查替换模式的正则细节:确保20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] 末尾的空格未遗漏,正则语法无缺失(比如方括号是否闭合)
  • 验证变量引用的引号:赋值或引用NAME时,若值包含特殊字符,未加双引号可能导致解析异常,确保关键位置引号正确
  • 确认脚本解释器:若脚本开头是#!/bin/sh,bash的扩展替换语法不兼容,需改为#!/bin/bash

可靠替代实现

方法1:修正bash扩展替换写法(确保用bash执行)

#!/bin/bash
NAME="/home/me/a_path/2023-04-10 filename"
NEW_NAME="${NAME//20[0-9][0-9]-[0-9][0-9]-[0-9][0-9] /}"
echo "$NEW_NAME"

方法2:正确使用sed命令

NAME="/home/me/a_path/2023-04-10 filename"
NEW_NAME=$(echo "$NAME" | sed 's/20[0-9]\{2\}-[0-9]\{2\}-[0-9]\{2\} //')
echo "$NEW_NAME"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 09:16:34