Zsh历史为数组

时间:2014-08-09 01:35:14

标签: shell zsh

出于某种原因,我无法为我的生命获得zsh来生成一个数组,该数组包含每个元素的整个shell历史记录中的一行。 (即hist_arr[1] == $(history 1 1 | tr -s " " | cut -d ' ' -f 3-), hist_arr[2] == $(history 2 2 | tr -s " " | cut -d ' ' -f 3-), ... <for ten thousand lines>)。我想一步计算整个数组,因此效率更高。

1 个答案:

答案 0 :(得分:0)

hist_arr[1]=$(history 1 1)工作正常,但包含多余的历史记录编号。 如果这是你的问题,那么简单删除它,例如。这样:

hist_arr[1]=$(history 1 1 | tr -s " " | cut -d ' ' -f 3-)

修改

如果要分配历史文件中的所有元素,那么

IFS=$'
'
hist_arr=( $(awk 'BEGIN{FS=OFS=";"} {$1=""; sub(/\;/, "")}'1 .zsh_history) )

应该有用。