首先,我不能使用awk或sed!
我计算了bash历史记录中使用命令的次数。我使用了以下代码:
cat ${!#} | cut -f 1 -d " " | sort | uniq -c | sort -n | sort -r
注意cat $ {!#}是deafult的history.txt,我用cut来摆脱编号的行。另外我不得不在最后使用sort -r
,否则我会得到输出升序而不是降序(为什么会这样?)。
好的我的主要问题是用相同的重复次数对命令进行排序。目前我收到了这个输出:
seq 3
ps 2
echo 2
cut 2
uname 1
nl 1
cmp 1
但我需要得到以下输出:
seq 3
cut 2
echo 2
ps 2
cmp 1
diff 1
nl 1
uname 1
所以是的。按重复次数对命令进行排序,如果它们中的任何一个相同,则按字母顺序排序。
我尝试用另一种方法解决这个问题,但到目前为止还没有取得多大成功。
输出中的命令是否与所需输出相反,这只是巧合吗?或者他们默认按降序排序?
答案 0 :(得分:2)
尝试使用GNU排序:
sort -k2nr -k1,1 file
输出:
seq 3 cut 2 echo 2 ps 2 cmp 1 nl 1 uname 1