如何替换文本文件中的自定义日期字符串

如何替换文本文件中的自定义日期字符串

我浏览了几个教程和几个 StackOverflow 帖子,但我没有看到任何使用 sed 或 awk 的示例,其中使用日期。我有一个文本文件,其中第一行包含此内容,我需要通过脚本将日期替换为当前日期和时间;在 Linux 中执行此操作最简单的方法是什么?

时间:2014-03-31 13:56:01

我可以使用标准 Ubuntu 安装中提供的任何工具,例如 sed 或 awk。

答案1

最简单的方法是仅使用sed该字符串并将其替换为正确的字符串。所以,如果当前时间是2014-04-02 21:34:13你可以简单地运行

sed 's/2014-03-31 13:56:01/2014-04-02 21:34:13/' file

因为您想动态地执行此操作,所以您可以传递sed相关调用的结果date

sed "s/2014-03-31 13:56:01/$(date '+%F %T')/" file

请注意命令周围的双引号 ( ") sed,这些是date运行命令所必需的。

答案2

要将第一行替换为预期的时间戳,只需使用

sed "1c TS: $(date '+%F %T')"

开头的 1 表示第一行,c表示“用后面的字符串替换该行”。$(...) 插入给定命令的输出,请参阅man date详细信息。

相关内容