JP Silvashy Asked: 2010-02-21 14:43:08 +0800 CST2010-02-21 14:43:08 +0800 CST 2010-02-21 14:43:08 +0800 CST 从 ZSH 历史文件中删除历史或行号 772 出于某种原因,我将这些奇数行号或某种历史编号放入我的~/.zsh_history文件中,如下所示: : 1266694881:0;rake db:migrate 我宁愿不必从头开始使用正则表达式,但我希望我的台词类似于: rake db:migrate 有人对如何解决这个问题有任何建议吗?我找到setopt EXTENDED_HISTORY了,但它似乎没有多大作用。 shell zsh 1 个回答 Voted Best Answer Dennis Williamson 2010-02-21T15:45:41+08:002010-02-21T15:45:41+08:00 尝试: unsetopt EXTENDED_HISTORY 这些数字是自命令开始时的 Unix 纪元以来的秒数以及命令运行的持续时间(以秒为单位)。 编辑: 我忘了提到您应该使用该fc命令与历史记录交互,而不是解析历史记录文件。这至少有几个原因。一个是历史文件没有内存中的条目,直到您退出外壳,达到阈值或您使用fc -AI命令明确写入(我相信)。其次,您可以EXTENDED_HISTORY保持打开状态并仍然与条目交互,而无需删除该信息。如果它关闭,那么当您这样做时fc -ld,shell 将使用 shell 启动的时间作为该时间之前历史记录中命令的时间戳。如果它关闭,它会记住实际的日期和时间(您在文件中看到的数字)。 见man zshbuiltins。 列出最近的条目: fc -l 列出它们没有命令号: fc -ln 列出最近的 20 个不带命令编号的命令: fc -ln -20 包括时间戳并仅打印最近的命令: fc -lnd -1 显示所有包含字符串“setop”的命令(在最后 50 个内)(显示setopt和unsetopt): fc -l -m '*setopt*' -50
尝试:
这些数字是自命令开始时的 Unix 纪元以来的秒数以及命令运行的持续时间(以秒为单位)。
编辑:
我忘了提到您应该使用该
fc
命令与历史记录交互,而不是解析历史记录文件。这至少有几个原因。一个是历史文件没有内存中的条目,直到您退出外壳,达到阈值或您使用fc -AI
命令明确写入(我相信)。其次,您可以EXTENDED_HISTORY
保持打开状态并仍然与条目交互,而无需删除该信息。如果它关闭,那么当您这样做时fc -ld
,shell 将使用 shell 启动的时间作为该时间之前历史记录中命令的时间戳。如果它关闭,它会记住实际的日期和时间(您在文件中看到的数字)。见
man zshbuiltins
。列出最近的条目:
列出它们没有命令号:
列出最近的 20 个不带命令编号的命令:
包括时间戳并仅打印最近的命令:
显示所有包含字符串“setop”的命令(在最后 50 个内)(显示
setopt
和unsetopt
):