在创建输出文件之前,使用 sed -E 将字符串替换为当前日期和时间

在创建输出文件之前,使用 sed -E 将字符串替换为当前日期和时间

我正在尝试生成一个文件来保存平均 CPU 使用情况的日志。

sudo mpstat 1 5 | grep Average | sed -E 's|Average:|$(date)|g' > cpu_usage_test.txt

我正在尝试将文本“平均:”替换为当前日期和时间。尝试了不同的方法,但在输出中,它将 $(date) 显示为字符串。为了轻松测试它,请使用以下命令将其显示在终端本身上。

sudo mpstat 1 1 | grep Average | sed -E 's|Average:|$(date)|g'

答案1

shell 不会替换用单引号括起来的字符串中的任何内容。请改用双引号。

您不需要该-E选项,并且可以使用 withoutgrep和 without sudo

mpstat 1 1 | sed -n "s|Average:|$(date)|gp"

-E不需要,因为这里不使用扩展正则表达式。默认情况下-n阻止sed打印,并且p仅当“Average:”实际上被替换时才打印该行。

GNU sed 手册顺便说一句,这对学习来说还不错。

相关内容