![如何替换文本文件中的自定义日期字符串](https://linux22.com/image/52418/%E5%A6%82%E4%BD%95%E6%9B%BF%E6%8D%A2%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E7%9A%84%E8%87%AA%E5%AE%9A%E4%B9%89%E6%97%A5%E6%9C%9F%E5%AD%97%E7%AC%A6%E4%B8%B2.png)
我浏览了几个教程和几个 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
详细信息。