我希望将"历史"的输出着色。带有时间戳。让我们说一行是
2084 10.05.16 17:08:13 history | sed 's/^[ 0-9]*[ ]/\o033[1;32m&\o033[0m/' | tail -n10
目前我想了
history | sed 's/^[ 0-9]*[ ]/\o033[1;32m&\o033[0m/' | tail -n10
以淡黄色调打印计数器。现在我想让时间戳换成另一种颜色。我试过了
history | sed 's/[ 0-9.:]*[ ]/\o033[1;31m&\o033[0m/' | sed 's/^[ 0-9]*[ ]/\o033[1;32m&\o033[0m/' | tail -n10
但显示计数器以及红色的时间戳。
我如何编写sed调用以获得" 2084"用一种颜色和时间戳" 10.05.16 17:13:39"在另一个?
提前THX!答案 0 :(得分:3)
history
没有时间戳字段,但如果您的历史命令输出如下行:
2084 10.05.16 17:08:13 history
然后你想要:
history | sed -E 's/^(\S+)(\s+)(\S+\s+\S+)/\o033[1;31m\1\o033[0m\2\o033[1;32m\3\o033[0m/'
以上使用\S
和\s
的GNU sed - 如果你的sed不支持它们,请分别用[^[:blank:]]
和[[:blank:]]
替换它们。
答案 1 :(得分:0)
我建议安装grc
(通用颜色程序)并创建自定义配置文件,如下所示:
# conf.history for grc
# sequence number
regexp=^\s+\d+
colours=yellow
=======
# date/time stamp
regexp=\d+\.\d+\.\d+\s+\d+:\d+:\d+
colours=red
count=once
然后你可以这样做:
history | grcat conf.history
如果我将HISTTIMEFORMAT
设置为"%d.%m.%y %H:%M:%S"
以匹配您的输出,则上述内容适用于我的机器 - 我会获得黄色序列号和红色日期/时间戳以及其他所有内容。