我需要将设备上文件中的日期替换为另一个日期。但是以下用于字符串替换的sed命令不起作用。
path= "/var/local"
last_date=d("cat /var/local”)-----06/24/18 date i
previous_date=(datetime.strptime(last_date, '%m/%d/%y')-timedelta(1)).strftime("%m/%d/%y”)--output --06/23/18
"sed -i 's/%s/%s/g' %s" % (last_date, previous_date, file)
此Sed输出为24/24/18。它不能代替完整日期
答案 0 :(得分:0)
您的问题似乎是您正在有效地运行以下命令:
sed -i "s/06/24/18/06/23/18/g" /var/local
如您所见,问题在于您没有在正则表达式中转义斜杠。
最简单的解决方法是在您的python代码中同时在.replace("/", "\\/")
和last_date
上调用previous_date
。
但是,由于您已经在使用Python,因此最好只使用纯Python,而不使用sed。