我想访问 zsh 历史记录,其中的条目由分隔\0
而不是\n
. 内置解析器可以清楚地处理多行条目,因为fc 123
会打开一个保留换行符的编辑器。但是,fc -l 123
(打印到标准输出而不是启动编辑器)将换行符转换为\\n
. 这意味着历史中包含文字的任何命令\n
都不能与换行符消除歧义(例如,printf "\n"
在 awk 调用中)。
有没有办法在 zsh 中使用fc
或内置函数来获取未更改的历史条目?history
我试图避免编写历史文件解析器的工作。作为参考,fish 有history -z
这个用例。
(奖励:我也想做同样的事情来分析 bash 历史。它fc
的行为似乎与 zsh 不同。)