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

如何使用sed将test.txt中的字符串date替换为实际系统日期

问题根因
  • 写在test.sed文件中的$(date)属于shell命令替换语法,sed本身没有解析这类shell语法的能力,只会将其作为普通字符串处理,因此无法输出系统日期。
  • 自定义日期格式中使用的/与sed默认的替换分隔符/冲突,会触发语法错误。
解决方案

方案1:直接在shell命令行执行(无需单独编写sed脚本,最简便)

sed的替换规则直接写在命令行中,用双引号包裹让shell先解析命令替换,再传给sed执行:

  1. 替换为默认格式的系统日期:
    sed "s/date/$(date)/" test.txt
  2. 替换为月/日/年格式的日期:
    把sed的替换分隔符换成|避免和日期中的/冲突,执行:
    sed "s|date|$(date +'%m / %d / %y')|" test.txt

如果你需要直接修改原test.txt文件,GNU sed(Linux系统默认)加-i参数即可:sed -i "s|date|$(date +'%m / %d / %y')|" test.txt;macOS系统自带的sed需要加空后缀:sed -i '' "s|date|$(date +'%m / %d / %y')|" test.txt

方案2:必须使用独立.sed脚本文件的处理方式

如果要求替换规则保存在test.sed文件中,需要先让shell解析完日期变量后生成可用的sed脚本再执行:
执行以下命令即可:

# 先动态生成包含实际日期的sed脚本
cat > test.sed <<EOF
s|date|$(date +'%m / %d / %y')|
EOF
# 执行sed脚本
sed -f test.sed test.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 17:27:03