gpt4 book ai didi

linux - Sed 替换日期

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:36:05 25 4
gpt4 key购买 nike

因此,我查看了其他问题,但似乎没有什么具体的内容可以帮助我。我有一个日期变量设置为 mm/dd/yyyy 的文件,我想用它替换日期。

例如:

版本.js

//Application Version Information
app_date="7/07/2015";
...

我想用 sed 来代替它。我实际上有一个 shell 脚本,它替换了这个文件中的许多东西,除了日期之外,所有的东西都有效。目前我正在尝试的是:

sed -i -e 's:app_date="[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]":app_date="$(date %m/%d/%Y)":g'

但这并没有让我得到我想要的结果。我也试过:

sed -ibak 's/app_date=\"[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]\"/app_date=\$(date +%m/%d/$Y)\"/g'

似乎都不起作用。

有什么想法吗?

编辑添加:

我成功采用的解决方案是 Sean Bright 的双引号:

sed -i -e "s:app_date=".*";:app_date="$(date +%m/%d/%Y)";:g" version.js

这非常适合我的需求。

最佳答案

我敢打赌,如果您要匹配的日期是 10 月 10 日,您的脚本会起作用...

sed -i -e 's:app_date="[0-9][0-9]*/[0-9][0-9]*/[0-9][0-9][0-9][0-9]":app_date="$(date %m/%d/%Y)":g'

如上所示在日和月表达式后添加 *[0-9][0-9] 将不匹配 7

现在我想起来了,因为你不关心文件中已经存在的日期,所以大部分都是不必要的,你可以简单地做:

sed -i -e 's:app_date=".*";:app_date="'$(date +%m/%d/%Y)'";:g' version.js

关于linux - Sed 替换日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31347753/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com