从ZSH历史文件中删除历史logging或行号

出于某种原因,我将这些奇数行号或历史logging号码存入我的~/.zsh_history文件中,如下所示:

 : 1266694881:0;rake db:migrate 

我宁愿不必诉诸于开始,但我想我的行是这样的:

 rake db:migrate 

有没有人有任何build议如何解决这个问题? 我发现setopt EXTENDED_HISTORY但似乎没有太多。

尝试:

 unsetopt EXTENDED_HISTORY 

这些数字是从命令开始的Unix纪元开始的秒数和命令运行的持续时间(以秒为单位)。

编辑:

我忘记提到你应该使用fc命令与历史交互,而不是parsing历史文件。 这至less有几个原因。 一个是历史文件没有内存中的条目,直到你退出shell,满足一个门槛,或者你明确地写它与fc -AI命令(我相信)。 其次,您可以离开EXTENDED_HISTORY并且仍然与条目交互,而不必删除该信息。 如果closures,那么在执行fc -ld ,shell会使用shell在此时间之前为历史命令的时间戳启动的时间。 如果它closures,它会记住实际的date和时间(您在文件中看到的数字)。

man zshbuiltins

列出最近的条目:

 fc -l 

列出他们没有命令号码:

 fc -ln 

列出最近的20个不带命令号的命令:

 fc -ln -20 

包含一个时间戳并只打印最近的命令:

 fc -lnd -1 

显示包含string“setop”(显示setoptunsetopt )的所有命令(最近​​50 unsetopt ):

 fc -l -m '*setopt*' -50