当前位置: 首页 > 知识库问答 >
问题:

使用Bash[duplicate]交换日志文件名中的日期戳时出现问题

李弘光
2023-03-14

我试图使用bash脚本交换日志文件名中的日期。然而,我似乎无法让日期发挥好作用。

当我尝试使用se交换日期时,原始日期仍然在文件名中(我正在回响,而不是现在使用mv):

#!/bin/bash
DATE=`date +%Y-%m-%d`
YESTERDATE= date -d 'yesterday 13:00' '+%Y-%m-%d'
echo "$DATE"
echo "$YESTERDATE"
for LOGFILE in *.$DATE;
do
    newfile="$(echo ${LOGFILE} |sed -e 's/$DATE/$YESTERDATE/')" ;
    echo "$newfile"
    #mv -- "$LOGFILE" "$newfile";
done

我想要更改的日志文件中只有今天的日期。格式为log_文件。日志2018-07-17。我想把它改成日志文件。日志2018-07-16

我在se命令中使用变量名的问题是什么?

共有3个答案

高寒
2023-03-14

嗨,在你的脚本中修改以下行:-

 newfile=$(echo ${LOGFILE} | sed -e 's/'$DATE'/'$YESTERDATE'/')

sed中,字符串变量应位于单引号下

咸晨
2023-03-14

一件事是,第二件事是昨天的不好试着回应它。对我来说,这样的工作:

#!/bin/bash
DATE=`date +%Y-%m-%d`
#change No.1
YESTERDATE=$(date -d 'yesterday 13:00' '+%Y-%m-%d')
echo "$DATE"
echo "$YESTERDATE"
for LOGFILE in *.$DATE;
do
    #change No.2
    newfile="$(echo ${LOGFILE} |sed -e "s/$DATE/$YESTERDATE/")" ;
    echo "$newfile"
    #mv -- "$LOGFILE" "$newfile";
done
朱兴运
2023-03-14

你引用有问题。这一行

newfile="$(echo ${LOGFILE} |sed -e 's/$DATE/$YESTERDATE/')"

对sed使用单引号,单引号防止替换变量。如果你尝试一些简单的方法,比如

echo "$(echo '$foo')"

相反,试试看

newfile=$(echo ${LOGFILE} |sed -e "s/$DATE/$YESTERDATE/")
 类似资料:
  • 虽然我进入实现从相当长的时间,但新的发展。

  • 问题内容: 我有一个带有一堆文件的文件夹。我需要删除7月1日之前创建的所有文件。如何在bash脚本中做到这一点? 问题答案: 我认为以下应该做您想要的: 第一行创建一个文件,该文件最后一次修改是在2010年7月1日。第二行在/ path / to / file中找到日期不比虚拟文件新的所有文件,然后将其删除。 如果要再次检查它是否可以正常工作,请删除该参数,它只应列出将要删除的文件。

  • 我有一个奇怪的问题,日期数组没有完全排序。数组的大部分似乎排序正确,但是有一个奇怪的地方,数组中的前两个元素没有排序,或者排序不正确。 代码: 我所期待的: 我得到的: 上面的代码看起来应该只是工作,而且看起来它在很大程度上是这样的。我应该在这里做什么不同的事情来让我的测试数组中的日期从最旧的到最新的排序?我是不是不明白用日期排序数组是如何工作的? 提前谢谢你。

  • 问题内容: 全部,似乎这个问题被发布了多次,但我仍然没有针对我的问题的适当解决方案。 按照下面的属性文件,每次都会在其中带有日期的情况下创建一个新文件,但是我想创建以下格式的日志文件,并且每次执行我的应用程序时都需要生成该文件, logFileName_MM_DD_YY-HH_MM_SS.log (或)logFileName.log_YYYY_MM_DD_HH_MM_SS 问题答案: 编辑-删除了

  • 目前,我的Spring-boot应用程序日志到一个名为:的文件,这是按预期工作,但是我希望日志文件在其末尾有一个,并在每次运行时创建一个新文件。 我尝试在<code>logback测试中实现这一点。xml文件如下所示,但它只是给出了文件名:myLog。没有时间戳的日志。 我该如何解决这个问题? 日志回测.xml:

  • 我希望在翻转后,旧日志文件的文件名中有创建日期。当前日志文件名中的日期不等于文件的创建日期。举个例子:如果一个日志文件是昨天创建的,更新到今天,现在已经翻转,那么昨天的日期应该在旧的日志文件名中可见。 启动后的日志切换在代码中如下所示 这类似于onStartupTriggeringPolicy 文件creationTime问题的以下bug(但未修复),适用于RollingFileAppender,