<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Linux Forum &mdash; Определить повторяющиеся строки]]></title>
	<link rel="self" href="https://linuxforum.ru/extern.php?action=feed&amp;tid=32778&amp;type=atom" />
	<updated>2013-12-22T16:06:29Z</updated>
	<generator>PunBB</generator>
	<id>https://linuxforum.ru/viewtopic.php?id=32778</id>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383862#p383862" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>echo -e &#039;111 xxx\n222 yyy\n111 yyy\n333 zzz\n222 yyy&#039; | cat -n | sort -k2 | { z=&#039;&#039;;x=0; while read a b; do [ &quot;${b}&quot; != &quot;${z}&quot; ] &amp;&amp; echo -n -e &quot;\n${b}&quot;; echo -n &quot;:${a}&quot; ; z=&quot;${b}&quot;; done; }; echo</code></pre></div>]]></content>
			<author>
				<name><![CDATA[smaharbA]]></name>
				<uri>https://linuxforum.ru/profile.php?id=32462</uri>
			</author>
			<updated>2013-12-22T16:06:29Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383862#p383862</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383449#p383449" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>allez пишет:</cite><blockquote><p>да еще просто и красиво</p></blockquote></div><p>ок. в данном случае<br /></p><div class="codebox"><pre><code>gu@moshell:~$ ./string file</code></pre></div><p>выглядит еще компактнее.</p><p>вы же не собираетесь тут выкладывать код для утилит? <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p><div class="quotebox"><cite>allez пишет:</cite><blockquote><p>вопрошающая в условиях задачи ничего не оговаривала насчет сохранения порядка</p></blockquote></div><p>вот такое суждение влечет к плохому сопровождению кода<br /></p><div class="quotebox"><cite>allez пишет:</cite><blockquote><p>я не собирался и не собираюсь делать за студиозусов их задания целиком и полностью</p></blockquote></div><p>а мне нравится задачки решать. и людям помощь, и сам чего то новое находишь<br /></p><div class="quotebox"><cite>allez пишет:</cite><blockquote><p>в таких случаях выдаю &quot;быстрый и грязный&quot;, но работающий код, &quot;вылизывать&quot; который предоставляю самим студентам, чтобы они совсем уж не расслаблялись. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p></blockquote></div><p>тут согласен.</p>]]></content>
			<author>
				<name><![CDATA[moshell]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20870</uri>
			</author>
			<updated>2013-12-20T14:17:49Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383449#p383449</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383446#p383446" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>-=Serj=- пишет:</cite><blockquote><p>Не знаток баша, но так проще, кажись) :</p></blockquote></div><div class="quotebox"><cite>moshell пишет:</cite><blockquote><p>весь ваш uniq и sort лесом идут, если нельзя менять порядок</p></blockquote></div><p>Может, и проще, может, и идут... Но, во-первых, вопрошающая в условиях задачи ничего не оговаривала насчет сохранения порядка, а во-вторых, я не собирался и не собираюсь делать за студиозусов их задания целиком и полностью, да еще просто и красиво. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /> Я, как правило, в таких случаях выдаю &quot;быстрый и грязный&quot;, но работающий код, &quot;вылизывать&quot; который предоставляю самим студентам, чтобы они совсем уж не расслаблялись. <img src="https://linuxforum.ru/img/smilies/ab.gif" alt="ab" /></p>]]></content>
			<author>
				<name><![CDATA[allez]]></name>
				<uri>https://linuxforum.ru/profile.php?id=8637</uri>
			</author>
			<updated>2013-12-20T14:04:40Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383446#p383446</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383445#p383445" />
			<content type="html"><![CDATA[<p>весь ваш uniq и sort лесом идут, если нельзя менять порядок</p>]]></content>
			<author>
				<name><![CDATA[moshell]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20870</uri>
			</author>
			<updated>2013-12-20T13:53:55Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383445#p383445</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383437#p383437" />
			<content type="html"><![CDATA[<p>прошу прощения, с похмела то тяжко и работа отвлекает<br /></p><div class="codebox"><pre><code>gu@moshell:~$ cat string
#!/usr/bin/perl -w

use strict;

my %number;
my $number_string;
my @list;
my %repeat;
my @uniq;
my %seen;
while (&lt;&gt;) {
        $number_string++;
        chomp;
        $number{$_}++;
        push (@list, $_);
        $repeat{$_} .= &quot;  $number_string&quot;
}

foreach my $item ( @list ) {
        push( @uniq, $item) unless $seen{$item}++;
}

for ( @uniq ) {
        print &quot;The string : \&quot;&quot;, $_, &quot;\&quot; found &quot;, $number{$_}, &quot; time(s) at line &quot;, $repeat{$_}, &quot;\n&quot;;
}</code></pre></div><div class="codebox"><pre><code>gu@moshell:~$ cat file
aaa
bbb
ccc
aaa
bbb
aaa
aaa</code></pre></div><div class="codebox"><pre><code>gu@moshell:~$ ./string file
The string : &quot;aaa&quot; found 4 time(s) at line   1  4  6  7
The string : &quot;bbb&quot; found 2 time(s) at line   2  5
The string : &quot;ccc&quot; found 1 time(s) at line   3
gu@moshell:~$</code></pre></div>]]></content>
			<author>
				<name><![CDATA[moshell]]></name>
				<uri>https://linuxforum.ru/profile.php?id=20870</uri>
			</author>
			<updated>2013-12-20T13:15:26Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383437#p383437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383426#p383426" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>allez пишет:</cite><blockquote><p>echo &quot;Номера повторяющихся строк&quot;; sort file | uniq -d | while read line; do cat -n file | grep $line; done | sort -n | awk &#039;{print $1}&#039;;</p></blockquote></div><p>Не знаток баша, но так проще, кажись) :<br /></p><div class="codebox"><pre><code>$ for i in $(sort file.txt | uniq -d); do grep -n $i file.txt | cut -f1 -d:; done</code></pre></div>]]></content>
			<author>
				<name><![CDATA[-=Serj=-]]></name>
				<uri>https://linuxforum.ru/profile.php?id=16175</uri>
			</author>
			<updated>2013-12-20T11:53:36Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383426#p383426</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383419#p383419" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>$ cat -n file
     1  aaa
     2  bbb
     3  ccc
     4  ddd
     5  qqq
     6  aaa
     7  fff
     8  bbb
     9  sss
    10  ddd
    11  lll
    12  111
    13  rrr
    14  666
    15  ddd
    16  333
    17  ccc
    18  111
    19  ddd

echo &quot;Номера повторяющихся строк&quot;; sort file | uniq -d | while read line; do cat -n file | grep $line; done | sort -n | awk &#039;{print $1}&#039;; echo -e &quot;\nОтсортированный файл с удаленными повторами строк&quot;; sort -u file
Номера повторяющихся строк
1
2
3
4
6
8
10
12
15
17
18
19

Отсортированный файл с удаленными повторами строк
111
333
666
aaa
bbb
ccc
ddd
fff
lll
qqq
rrr
sss</code></pre></div><p>Тот же самый однострочник, но в более удобочитаемом виде:<br /></p><div class="codebox"><pre><code>echo &quot;Номера повторяющихся строк&quot;
sort file \
| uniq -d \
| while read line; 
do 
  cat -n file | grep $line
done | sort -n | awk &#039;{print $1}&#039;
echo -e &quot;\nОтсортированный файл с удаленными повторами строк&quot;
sort -u file</code></pre></div>]]></content>
			<author>
				<name><![CDATA[allez]]></name>
				<uri>https://linuxforum.ru/profile.php?id=8637</uri>
			</author>
			<updated>2013-12-20T11:03:09Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383419#p383419</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383391#p383391" />
			<content type="html"><![CDATA[<p>Насколько я помню, для uniq надо, чтобы повторяющмеся строки шли подряд,<br />т.е. файл должен быть отсортированным, так что нужен отдельный скрипт<br />и grep с опцией &quot;-n&quot; - выводить номера строк. Но сам я этого не делал.<br />Ещё есть comm для сравнения отсортированных файлов.</p><p>Пётр.</p>]]></content>
			<author>
				<name><![CDATA[Peter]]></name>
				<uri>https://linuxforum.ru/profile.php?id=5246</uri>
			</author>
			<updated>2013-12-20T08:13:58Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383391#p383391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Определить повторяющиеся строки]]></title>
			<link rel="alternate" href="https://linuxforum.ru/viewtopic.php?pid=383334#p383334" />
			<content type="html"><![CDATA[<p>В заданном файле:<br />а) определить повторяющиеся строки, вывести их номера<br />б)оставить в файле только одну из повторяющихся строк</p><p>Помогите, пожалуйста, разобраться.</p><p>вот что получается :&nbsp; &nbsp; </p><div class="codebox"><pre><code>cat -n file.txt | sort | uniq -f 2 -d</code></pre></div><p>Объясните как нужно, пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[natalia.nikiforowa]]></name>
				<uri>https://linuxforum.ru/profile.php?id=32919</uri>
			</author>
			<updated>2013-12-19T22:02:22Z</updated>
			<id>https://linuxforum.ru/viewtopic.php?pid=383334#p383334</id>
		</entry>
</feed>
