@maniac_by

Как найти 10 файлов с самым частым совпадением по слову?

Всем привет. Есть задача в которой надо через терминал найти 10 файлов с самым частым повторением слов.

Поиск по одному слову среди файлов - это легко:
find / | xargs grep "penguin" | wc -w

А вот дальше я как-то затупил. Есть идеи?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Как вариант:
for i in $(find ./ -type f);do  echo $i, $(cat $i | grep -o "penguin" | wc -w); done | sort -k2 -r | head -n10
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vman
@vman
for w in "for" "if" "continue"; do tmp=$(mktemp); grep -P "\b$w\b" * -R | grep -v 'Binary file' | awk -F":" '{print $1}' > $tmp; echo "word: $w"; cat $tmp | sort | uniq -c | sort -hr | head -n 10; rm -f $tmp; done

word: for
    471 __init__.py
    141 depsolve.py
    127 rpmsack.py
    104 sqlitesack.py
     93 packageSack.py
     88 comps.py
     81 history.py
     74 packages.py
     73 yumRepo.py
     58 updateinfo.py
word: if
   1024 __init__.py
    317 yumRepo.py
    297 packages.py
    248 depsolve.py
    235 rpmsack.py
    233 sqlitesack.py
    189 history.py
    155 misc.py
    149 pgpmsg.py
    116 config.py
word: continue
    144 __init__.py
     47 depsolve.py
     35 rpmsack.py
     30 sqlitesack.py
     19 yumRepo.py
     16 history.py
     14 updateinfo.py
     14 transactioninfo.py
     14 packages.py
     14 misc.py
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы