创建一个完整且按字母顺序排序的 .txt bash 历史文件

5 bash sort text-processing bash-history

我想要一个完整的、排序的 bash 历史列表。但是有一些问题:

  1. 通过这样做history,列表永远不会显示完整的列表,只显示 1000 个命令。
  2. 在我的$HOME目录中有一个名为.bash_history的文件 ,它显示了 2000 个结果。
  3. 当我想 从我的历史记录中创建一个排序的.txt文件时,我会这样做:

    history | sort > History.txt
    
    Run Code Online (Sandbox Code Playgroud)

    但是由于数字,命令不是按字母顺序排序的,而是按数字排序的。

有什么办法可以做我想做的事吗?

Bru*_*uni 7

怎么样:

cat ~/.bash_history | sort > Sorted_history.txt
Run Code Online (Sandbox Code Playgroud)

要拥有无限的 bash 历史记录,请查看此 QA:

/sf/ask/662006341/

  • @jpezz:或者更简单的`< ~/.bash_history sort -u > Sorted_history.txt`。并且您可以先使用 `history -a` 来“将此会话的历史行附加到历史文件中”。 (4认同)
  • 如果你不想完全重复,你可以“cat ~/.bash_history | sort | uniq > Sorted_history.txt” (3认同)

sha*_*omb 7

sort可以按用户指定的字段对输入进行排序-k,所以严格来说,像这样的东西就是你要找的。

history | sort -k2 > History.txt  # or -K3 if you have $HISTTIMEFORMAT, etc set
Run Code Online (Sandbox Code Playgroud)

此外,history命令输出中的可用内容与记录的内容之间通常存在差异~/.bash_history,后者不会在每个命令之后更新(通常仅在注销时更新),因此使用history | sort ..更能提供当前视图。