• XSS.stack #1 – первый литературный журнал от юзеров форума

Как посчитать кол-во совпадений строк в файле?

DrSleep

(L2) cache
Пользователь
Регистрация
10.01.2020
Сообщения
396
Реакции
304
Гарант сделки
1
Не для кого не секрет,что много кто взамен старых паролей утекших, начинает использовать видоизменненный старый пароль, например у холдера был пасс password, он просек что его доступ утек,меняет пароль на password1,password123,Password1 и тд.
Взял пару баз вытащил с них пароли,от паролей снял 1, с 1 по 3 символ сначала и аналогично с конца строк.Получилось несколько списков, теперь хочется подбить статистику,сколько людей используют ! в конце пароля,сколько @ в начале пароля и тд.
Если получится провернуть выложу стату на форум,выборка 18кк паролей(думаю достаточно для статической значимости)
P.S. выложил кусочек в 20 с лишним тысяч строк для тестов
 

Вложения

  • last3.txt
    104.5 КБ · Просмотры: 30
В файле-примере 19683 повтора строк и 7078 уникальных
Нужно не это посчитать, а кол-во строк допустим
Код:
k23 100 строк
123 10000к строк
oft 500 строк
Чтобы потом видно было,сколько людей используют окончание в паролях k23, сколько 123 и тд.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Нужно не это посчитать, а кол-во строк допустим
Код:
k23 100 строк
123 10000к строк
oft 500 строк
Чтобы потом видно было,сколько людей используют окончание в паролях k23, сколько 123 и тд.
А, понял. Сейчас попробую что-то придумать.
 
Если совсем просто, то:
Код:
grep 123 file.txt | wc -l

Если по всем сразу:
Код:
for i in $(cat last3.txt); do echo $i: $(grep $i file.txt | wc -l); done

Будет такой вывод:
Код:
k23: 0
123: 3
oft: 0
469: 0
789: 0
989: 0
ked: 0
125: 0
913: 0
me1: 0
a00: 0
 
Последнее редактирование:
Если совсем грубо, то
Код:
grep 123 file.txt | wc -l

Правильнее - регексом.
Так надо каждую строку проверить, а не только 123.
Получается нужно сначала прочитать строку,после посчитать сколько раз она встречается в файле,записать инфу в другой файл вида
Код:
123:50000
erq:100
roe:203
дальше считываем следующею строку и так до конца файла.Дубли естестенно удалять нельзя,так мы не сможем посчитать верно.Сделал на зеннопостере софт, но им чекать долго прийдется.

Пока писал добавили
Код:
for i in $(cat last3.txt); do echo $i: $(grep $i file.txt | wc -l); done

сейчас чекну
 
Обновил пост выше :)
Код:
for i in $(cat last3.txt); do echo $i: $(grep $i last3.txt | wc -l); done
Ага, одновременно строчим.Вроде то что нужно.Но почему-то доходит до 841 строки
Код:
sty: 5
ink: 9
и перестает дальше работать, делал так
Код:
for i in $(cat last3.txt); do echo $i: $(grep $i last3.txt | wc -l) ; done > 123
Потом еще от дублей почистить и отсортировать по убыванию после :
Код:
for i in $(cat last3.txt); do echo $i: $(grep $i last3.txt | wc -l) ; done > 123 && sort -n -t ':' -k2 123|uniq > result.txt && rm 123
Но непойму почему стопарится на 841 строке
 
Стопается из-за минуса в начале строк. Их нужно экранировать.
Например:
sed -i.bak 's,^-,\\-,g' last3.txt
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх