linux shell编程 当前系统日期替换某一个日期

a=`date+%y%m%d`获取时间sed-i"s/b/a"1.sh我想要两个变量一个a获取当前日期格式为20131121还要一个变量b存上回获取的系统日期如20131... a=`date+%y%m%d` 获取时间
sed -i "s/b/a" 1.sh
我想要两个变量一个a获取当前日期格式为20131121还要一个变量b存上回获取的系统日期如20131018
用命令替换1.sh文件中所有的20131018为20131121 并将b中也改为20131121 以备下次用

应该怎样写
展开
 我来答
正青春梦飞扬

推荐于2017-08-29 · 知道合伙人互联网行家
正青春梦飞扬
知道合伙人互联网行家
采纳数:6837 获赞数:306021
对SEO有这独特见解 工作努力积极、团结同事 连续2个月个人工作完成优秀 客户0投诉 评委最佳班组经理

向TA提问 私信TA
展开全部
不过此命令没有改变源文件,可以将命令输出到另一个文件中。
这里认为8个数字的都是日期,如果有不是日期的情况,需要更改正则表达式进行排除。
554817608
2013-11-21 · TA获得超过275个赞
知道小有建树答主
回答量:193
采纳率:0%
帮助的人:224万
展开全部
[root@-xl ~]# sed -i "s/$a/$b/g" 1.sh
追问
您知不知道 a=`date +%y%m%d` 我输出的日期是131121 我想要20131121 怎么改呢谢谢
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PrideRem
2013-11-21
知道答主
回答量:2
采纳率:0%
帮助的人:2868
展开全部
a=`date +%y%m%d`
sed -i 's/20131018/$a' 1.sh
追问
您知不知道 a=`date +%y%m%d` 我输出的日期是131121 我想要20131121 怎么改呢谢谢
追答
把y改成大写

date +%Y%m%d
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wallcopper
2013-11-21 · TA获得超过3447个赞
知道大有可为答主
回答量:1986
采纳率:86%
帮助的人:1807万
展开全部
#!/bin/sh
#modify_date.sh

if [ ! -f lastdate.txt ];then
date +%Y%m%d > lastdate.txt
exit 1;
fi

today=`date +%Y%m%d`
lastdate=`cat lastdate.txt`

sed -i "s/${lastdate}/${today}/g" 1.sh
echo ${today}> lastdate.txt
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式