我想对从文件输入的另一个命令执行 man 命令

我想对从文件输入的另一个命令执行 man 命令

我有一个包含多个命令的文件,ls,echo,ps 等。我想用终端命令查找哪个命令出现最多(在文件中出现最多),然后对其执行 man 。例如我的文件包含 ls ls ps 我必须执行 man ls。文件的形式是:多行,每行只有一个命令。

文件示例:

ls
ls
ps
echo
man
cp
rm

答案1

对文件进行排序,计算每个单词按顺序出现的次数,再次排序,但这次按数字排序(按降序排列),抓取第一个单词并删除数字(假设原始列表仅包含没有空格的单个单词) :

sort file | uniq -c | sort -nr | head -n 1 | awk '{ print $2 }'

对于给定的文件,这将产生ls.

调用man此命令:

man "$( sort file | uniq -c | sort -nr | head -n 1 | awk '{ print $2 }' )"

要不就

man "$( awk '++c[$1] && c[$1] > m { mc=$1; m=c[$1] } END { print mc }' file )"

有关的:

相关内容