<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Linux Forum &mdash; Вывод строки которая повторяется более n раз.]]></title>
		<link>https://linuxforum.ru/viewtopic.php?id=23823</link>
		<atom:link href="https://linuxforum.ru/extern.php?action=feed&amp;tid=23823&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Вывод строки которая повторяется более n раз.».]]></description>
		<lastBuildDate>Wed, 22 Aug 2012 09:22:48 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=294588#p294588</link>
			<description><![CDATA[<div class="quotebox"><cite>Rassol2 пишет:</cite><blockquote><p>Всему свое время. Пока что я осваиваю это. Причем дается довольно сложно. Тупой я короче</p></blockquote></div><p>мне это тоже непросто даётся на самом деле...</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Wed, 22 Aug 2012 09:22:48 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=294588#p294588</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=294544#p294544</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Кстати, сам лог можно сохранять не только в текстовом файле, а отправлять напрямую в СУБД, это получается намного быстрее, если нужны такие сложные действия.</p></blockquote></div><p>Всему свое время. Пока что я осваиваю это. Причем дается довольно сложно. Тупой я короче <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></description>
			<author><![CDATA[null@example.com (Rassol2)]]></author>
			<pubDate>Tue, 21 Aug 2012 21:09:24 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=294544#p294544</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293967#p293967</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 21:36:40 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293967#p293967</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293954#p293954</link>
			<description><![CDATA[<p><strong>drBatty</strong><br />о какие люди в галивуде. </p><p>Ну 15 самых активных не подойдет. К примеру если сыпется дос с 100 ипов и дамп за 10сек составляет 300000 строк. То я не получу большого ефекта если начну отсекать 15 ип всего.<br />Ведь нужно найти тех кто умудрился за 10 сикунд прислать около 1000 или 2000 тысяч запросов.</p>]]></description>
			<author><![CDATA[null@example.com (Rassol2)]]></author>
			<pubDate>Sun, 19 Aug 2012 20:35:25 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293954#p293954</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293908#p293908</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:28:39 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293908#p293908</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293903#p293903</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:22:30 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293903#p293903</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293902#p293902</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (-=Serj=-)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:21:05 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293902#p293902</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293901#p293901</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:19:57 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293901#p293901</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293900#p293900</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:17:57 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293900#p293900</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293899#p293899</link>
			<description><![CDATA[<div class="quotebox"><cite>drBatty пишет:</cite><blockquote><p>выводятся первые 15 строчек.</p></blockquote></div><p>Так, вроде, нужно все, которые повторяются более 1000 раз. А твой, как я понял, выдаст 15 самых повторяющихся...</p>]]></description>
			<author><![CDATA[null@example.com (-=Serj=-)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:17:46 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293899#p293899</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293898#p293898</link>
			<description><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>#!/usr/bin/env python</p></blockquote></div><p>есть 2 недостатка у этого скрипта:<br />1. Я сомневаюсь, что ТС знает пайтон, и что ему это нужно сейчас. Очевидно он просил решение на bash, ибо непонятно, есть-ли у него вообще пайтон, и если есть, то какой версии?<br />2. Заранее сложно узнать, сколько в файле повторяющихся строк. Не проще-ли вывести самые частые?</p>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:16:43 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293898#p293898</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293894#p293894</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (drBatty)]]></author>
			<pubDate>Sun, 19 Aug 2012 18:06:25 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293894#p293894</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293807#p293807</link>
			<description><![CDATA[<p>Чуть пожже проведем опыты.</p>]]></description>
			<author><![CDATA[null@example.com (Rassol2)]]></author>
			<pubDate>Sun, 19 Aug 2012 09:51:33 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293807#p293807</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293692#p293692</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (-=Serj=-)]]></author>
			<pubDate>Sat, 18 Aug 2012 07:27:32 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293692#p293692</guid>
		</item>
		<item>
			<title><![CDATA[Re: Вывод строки которая повторяется более n раз.]]></title>
			<link>https://linuxforum.ru/viewtopic.php?pid=293691#p293691</link>
			<description><![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>]]></description>
			<author><![CDATA[null@example.com (Lupo Alberto)]]></author>
			<pubDate>Sat, 18 Aug 2012 07:27:07 +0000</pubDate>
			<guid>https://linuxforum.ru/viewtopic.php?pid=293691#p293691</guid>
		</item>
	</channel>
</rss>
