<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Вывод строки которая повторяется более n раз.]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23823&amp;type=atom" />
	<updated>2012-08-22T09:22:48Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=23823</id>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=294588#p294588" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Всему свое время. Пока что я осваиваю это. Причем дается довольно сложно. Тупой я короче</p></blockquote></div><p>мне это тоже непросто даётся на самом деле...</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-22T09:22:48Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=294588#p294588</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=294544#p294544" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Кстати, сам лог можно сохранять не только в текстовом файле, а отправлять напрямую в СУБД, это получается намного быстрее, если нужны такие сложные действия.</p></blockquote></div><p>Всему свое время. Пока что я осваиваю это. Причем дается довольно сложно. Тупой я короче <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[Rassol2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15167</uri>
			</author>
			<updated>2012-08-21T21:09:24Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=294544#p294544</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293967#p293967" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Ну 15 самых активных не подойдет.</p></blockquote></div><p>вот проблема-то!</p><div class="codebox"><pre><code>while read COUT STRING; do
    if (( COUNT &lt; 1000 )); then
        break
    fi
done</code></pre></div><p>этот цикл напечатает все строчки в порядке убывания до 1000 повторов включительно.<br /></p><div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Ведь нужно найти тех кто умудрился за 10 сикунд прислать около 1000 или 2000 тысяч запросов.</p></blockquote></div><p>это тоже можно реализовать, хотя и сложнее. Для этого уже есть смысл подключить СУБД, ибо это уже достаточно сложная, и ресурсоёмкая операция. Кстати, сам лог можно сохранять не только в текстовом файле, а отправлять напрямую в СУБД, это получается намного быстрее, если нужны такие сложные действия.</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T21:36:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293967#p293967</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293954#p293954" />
			<content type="html"><![CDATA[<p><strong>drBatty</strong><br />о какие люди в галивуде. </p><p>Ну 15 самых активных не подойдет. К примеру если сыпется дос с 100 ипов и дамп за 10сек составляет 300000 строк. То я не получу большого ефекта если начну отсекать 15 ип всего.<br />Ведь нужно найти тех кто умудрился за 10 сикунд прислать около 1000 или 2000 тысяч запросов.</p>]]></content>
			<author>
				<name><![CDATA[Rassol2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15167</uri>
			</author>
			<updated>2012-08-19T20:35:25Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293954#p293954</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293908#p293908" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Lupo Alberto пишет:</cite><blockquote><p>«Не верю!»</p></blockquote></div><p>а зря, ибо действительно не распарсил. Лениво просто. Лично я ТАКОГО не пишу, ибо потом сам замучаюсь разбираться...<br /></p><div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Пока-что вторая версия у всех по-умолчанию... Вроде...</p></blockquote></div><p>ORLY?<br /></p><div class="quotebox"><blockquote><p>The current production versions are Python 2.7.3 and Python 3.2.3.<br />Start with one of these versions for learning Python or if you want the most stability; they&#039;re both considered stable production releases.<br />If you don&#039;t know which version to use, start with Python 2.7; more existing third party software is compatible with Python 2 than Python 3 right now.</p></blockquote></div><p><a href="http://www.python.org/download/">http://www.python.org/download/</a><br />в гробу я видел ЯП, у которых ДВЕ текущие несовместимые версии...</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T18:28:39Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293908#p293908</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293903#p293903" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Так, вроде, нужно все, которые повторяются более 1000 раз. А твой, как я понял, выдаст 15 самых повторяющихся...</p></blockquote></div><p>а ТС сам не знает, чего ему надо <img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /><br /></p><div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>А если по длиннее&nbsp; то получается я имею файл в котором записаны сотни ип, и мне <strong>нужно отобрать только параноидально активных</strong>, которые записаны более 1к</p></blockquote></div><p>Согласитесь, что 1К тут взято чисто от балды.<br />В предъявленном тестовом файле очевидно таких записей нет, потому тестирование возможно только у ТСа, и ни у кого другого...</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T18:22:30Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293903#p293903</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293902#p293902" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>1. Я сомневаюсь, что ТС знает пайтон, и что ему это нужно сейчас.</p></blockquote></div><p>Не, ну на чём умею, на том и нацарапал <span class="postimg"><img src="http://linuxforum.ru/extensions/bbcode_smiles/img/ah.gif" alt="http://linuxforum.ru/extensions/bbcode_smiles/img/ah.gif" /></span><br /></p><div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>если есть, то какой версии?</p></blockquote></div><p>Пока-что вторая версия у всех по-умолчанию... Вроде...</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2012-08-19T18:21:05Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293902#p293902</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293901#p293901" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>если честно, не распарсил.</p></blockquote></div><p>«Не верю!» ©Станиславский<br /><img src="https://linuxforum.ru/img/smilies/bx.gif" alt="bx" /></p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2012-08-19T18:19:57Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293901#p293901</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293900#p293900" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Lupo Alberto пишет:</cite><blockquote><p>#!/bin/bash LIST_IP=&quot;${1}&quot; NUM=100 for i in $(sort -u &quot;${LIST_IP}&quot;); do [[ $(grep -c &quot;${i}&quot; &quot;${LIST_IP}&quot;) &gt; ${NUM} ]] &amp;&amp; echo &quot;${i}&quot; done</p></blockquote></div><p>если честно, не распарсил. Лихо закручено...</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T18:17:57Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293900#p293900</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293899#p293899" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>выводятся первые 15 строчек.</p></blockquote></div><p>Так, вроде, нужно все, которые повторяются более 1000 раз. А твой, как я понял, выдаст 15 самых повторяющихся...</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2012-08-19T18:17:46Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293899#p293899</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293898#p293898" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>#!/usr/bin/env python</p></blockquote></div><p>есть 2 недостатка у этого скрипта:<br />1. Я сомневаюсь, что ТС знает пайтон, и что ему это нужно сейчас. Очевидно он просил решение на bash, ибо непонятно, есть-ли у него вообще пайтон, и если есть, то какой версии?<br />2. Заранее сложно узнать, сколько в файле повторяющихся строк. Не проще-ли вывести самые частые?</p>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T18:16:43Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293898#p293898</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293894#p293894" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Интересует вопрос какая утилита может вывести строки которые повторяются в файле более 1000 раз</p></blockquote></div><p>я не знаю. Могу скрипт набросать:</p><div class="codebox"><pre><code>#!/bin/bash


declare -A dic
declare -a strs
WORD_COUNT=0

while read s; do
    COUNT=${dic[&quot;$s&quot;]}
    (( COUNT++ ))
    #echo $s $COUNT
    dic[&quot;$s&quot;]=$COUNT
    if [ $COUNT == 1 ]; then
         # первое вхождение
         strs[$WORD_COUNT]=$s
         (( WORD_COUNT++ ))
     fi
done &lt; ~/tmp/test.txt

echo &quot;-----&quot;

TMP1=`mktemp`

for (( i = 0; i &lt; $WORD_COUNT; i++ )); do
    s=${strs[$i]}
    echo ${dic[&quot;$s&quot;]} &quot;&#039;$s&#039;&quot; &gt;&gt; $TMP1
done

sort -rn $TMP1 | head -n15

rm --force $TMP1</code></pre></div><p>Идея в том, что используются ассоциативный массив bash&#039;а, в котором сохраняется число повторений. Далее этот массив сортируется, и выводятся первые 15 строчек.<br />Вот так:<br /></p><div class="codebox"><pre><code>$ ./uniq1000.bash 
-----
3 &#039;207.10.162.52.3992&#039;
3 &#039;207.10.162.52.3991&#039;
3 &#039;207.10.162.52.3989&#039;
3 &#039;207.10.162.52.3988&#039;
3 &#039;207.10.162.52.3965&#039;
3 &#039;207.10.162.52.3961&#039;
2 &#039;207.10.162.52.3995&#039;
2 &#039;207.10.162.52.3962&#039;
1 &#039;bementil-90.illinois.sparkplugbb.net.4747&#039;
1 &#039;bementil-90.illinois.sparkplugbb.net.4740&#039;
1 &#039;adsl-99-136-111-230.dsl.lsan03.sbcglobal.net.49845&#039;
1 &#039;adsl-99-136-111-230.dsl.lsan03.sbcglobal.net.49844&#039;
1 &#039;207.10.162.52.4021&#039;
1 &#039;207.10.162.52.4020&#039;
1 &#039;207.10.162.52.3793&#039;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[drBatty]]></name>
				<uri>https://linuxforum.ru/profile.php?id=86</uri>
			</author>
			<updated>2012-08-19T18:06:25Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293894#p293894</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293807#p293807" />
			<content type="html"><![CDATA[<p>Чуть пожже проведем опыты.</p>]]></content>
			<author>
				<name><![CDATA[Rassol2]]></name>
				<uri>https://linuxforum.ru/profile.php?id=15167</uri>
			</author>
			<updated>2012-08-19T09:51:33Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293807#p293807</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293692#p293692" />
			<content type="html"><![CDATA[<p><strong>Rassol2</strong>, для проверки моего, замените последнюю строчку на <br /></p><div class="codebox"><pre><code>print &quot;%s --- %d&quot; % (key.strip(), dictionary[key])</code></pre></div><p>так будет выводиться количество повторений. Уменьшите кол-во искомых повторений, например до 3х и подсуньте ему небольшой файл, где вы сможете проверить кол-во совпадений...<br />Ну и для более точного сравнения скриптов, измените в <br /></p><div class="codebox"><pre><code>if dictionary[key] &gt;= 1000:</code></pre></div><p><strong>&gt;=</strong> на <strong>&gt;</strong>.</p>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2012-08-18T07:27:32Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293692#p293692</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=293691#p293691" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Протестил ваши скрипты на логе с 150000 строками.<br />Результат конечно разный а вот кому верить )</p></blockquote></div><p>Попробуйте сначала<br /></p><div class="codebox"><pre><code>sort -u list.txt | wc -l</code></pre></div><p>чтобы получить количество уникальных адресов и соотнести его с результатами работы скриптов.<br /></p><div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Lupo Alberto, у вас я поправил еше строку NUM=100 на NUM=1000</p></blockquote></div><p>Это только пример.<br />Если не сложно, дайте полный файл с адресами, ну или хотя бы кусок по-больше, в пару тысяч строк.</p>]]></content>
			<author>
				<name><![CDATA[Lupo Alberto]]></name>
				<uri>https://linuxforum.ru/profile.php?id=9018</uri>
			</author>
			<updated>2012-08-18T07:27:07Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=293691#p293691</id>
		</entry>
</feed>
