파일에서 입력한 다른 명령에 대해 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 )"

관련된:

관련 정보