如何从 bash 历史记录中删除重复项?

ada*_*ntj 11 linux bash .bash-profile

由于我正在保存来自不同会话的历史记录,这是一个erasedups无济于事的问题,因为我正在使用以下内容:

PROMPT_COMMAND="$PROMPT_COMMAND;history -a"
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法可以删除历史记录中的重复项?

小智 17

可以通过运行删除 .bash_history 中已经存在的重复行

nl ~/.bash_history | sort -k 2  -k 1,1nr| uniq -f 1 | sort -n | cut -f 2 > unduped_history
Run Code Online (Sandbox Code Playgroud)

其次是

cp unduped_history ~/.bash_history
Run Code Online (Sandbox Code Playgroud)

我还建议将以下内容放在您的 ~/.bashrc 中:

export HISTCONTROL=ignoreboth:erasedups
Run Code Online (Sandbox Code Playgroud)