如何在 Bash 中的“历史”输出中获取时间戳之前的命令?

如何在 Bash 中的“历史”输出中获取时间戳之前的命令?

我发现这个答案关于 Bash 的时间戳历史。

有没有什么办法可以改变输出?尤其

Number command time-stamp

而不是

Number time-stamp command

答案1

您可以处理内置的输出。首先根据您链接到的答案history做好准备:HISTTIMEFORMAT

export HISTTIMEFORMAT="%d.%m.%y %T "

要获得所需的输出,请调用:

history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'

如果用history函数覆盖内置函数:

history() { builtin history | awk '{ printf "%s\t",$1; for(i=4; i<=NF; i++) printf "%s",$i OFS; printf "\t%s %s\n",$2,$3 }'; }

那么只要写下来history就可以得到你想要的东西。

注意:裸输出中的前导空格和列格式history将丢失。由于命令字段没有固定长度,将其放在中间并不是一个好主意。我故意用制表符(而不是空格)分隔字段,以使输出更具可读性。如果您更喜欢空格,请\t在我的代码中用(空格)替换。

相关内容