我最近在我的 bash 历史记录中打开了时间戳。我正在使用三个选项来从我的历史中获得更多信息。
HISTTIMEFORMAT="[%F %T %Z] "; shopt -s histappend; PROMPT_COMMAND='history -a'
我拼凑了一个 bash 脚本,而不是每次我想查看历史时都将 HISTSIZE 设置为一个大得离谱的数字,而不必用大脑解析纪元时间。
awk '/^#[0-9]+$/{ match($0,/[0-9]+/);
t = strftime("[%F %T %Z] ",substr($0,RSTART,RLENGTH));
sub(/#[0-9]+/,t) } 1' ~/.bash_history | less
这很丑陋,但它有效。我想它也可以简化,但这只是我发布此内容的次要原因。我想做的是在每个命令前面加上对应的时间戳。我认为这可以在 中完成sub(/#[0-9]+/,t)
,但是当我尝试匹配 时\n
,它什么也没做。我必须做什么才能让它识别换行符?
任何指针将不胜感激。