答案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
在我的代码中用(空格)替换。