我正在尝试生成一个文件来保存平均 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 手册顺便说一句,这对学习来说还不错。