我正在处理我的.bash_history
文件,并希望识别重复的命令以进行清理。
这是一个示例片段:
...
#1713251479
sh lowbat.sh
#1713251495
nvim lowbat.sh
#1713252186
sh lowbat.sh
#1713253121
xclip -sel clip lowbat.sh
#1713253722
cd code/dotfiles/
#1713253766
git add mpv/
...
我的目标是:
- 按字母顺序对命令进行排序,以便轻松识别冗余条目。
- 查看并编辑排序列表(在
.bash_history_sorted
文件中)以省略不必要的命令。 - 恢复文件中原来的顺序(按时间戳排序)
.bash_history_sorted
,最后.bash_history
用.bash_history_sorted
file覆盖原来的文件。
可以使用命令来实现吗sort
?
编辑:我最终用 C 语言编写了自己的程序。这是源代码,尽管我仍然对其他方法持开放态度。
给定每个命令 1 行,如您发布的示例输入中所示,这种装饰-排序-取消装饰方法将使用任何
awk
、sort
等:将其称为“并仅在完成测试并很高兴它满足您的要求后才
tst.sh .bash_history
回复最终提示”。y
它也会创建一个备份文件,例如.bash_history.bk
输入的备份文件,以防万一您需要它。如果您愿意,可以使用硬编码的文件名
.bash_history_sorted
代替"$tmp2"
和/或使用硬编码的.bash_history
代替。"$1"
如果您不确定它的作用,只需
awk
单独运行第一个命令来查看它的作用,然后将管道添加到第一个命令sort
并查看它的作用,依此类推。