The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]



"Помогите удалить повторяющиеся строки"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Помогите удалить повторяющиеся строки"  +/
Сообщение от mintolik email on 13-Май-18, 01:33 
Есть файл, в нём постоянно повторяются строки. Необходимо удалить повторяющиеся строки, но без сортировки списка.
$ sort file.txt| uniq -u > sort.txt - не подходит, так как я не хочу сортировать текст. Мне нужно лишь избавиться от повторяющихся строк.

Заранее благодарю за помощь.

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Помогите удалить повторяющиеся строки"  +/
Сообщение от михалыч (ok) on 13-Май-18, 07:03 
> Есть файл, в нём постоянно повторяются строки. Необходимо удалить повторяющиеся строки,
> но без сортировки списка.
> $ sort file.txt| uniq -u > sort.txt - не подходит, так как
> я не хочу сортировать текст. Мне нужно лишь избавиться от повторяющихся
> строк.
> Заранее благодарю за помощь.

Пожалуйста.

perl -e 'for(`cat file.txt`){print unless $s{$_}++}'

или так
perl -e '@u=grep{\!$s{$_}++} `cat file.txt`; print @u'

в FreeBSD знак "!" приходится экранировать
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Помогите удалить повторяющиеся строки"  +3 +/
Сообщение от Andrey Mitrofanov on 13-Май-18, 08:01 
>> Заранее благодарю за помощь.
> Пожалуйста.
>
perl -e 'for(`cat file.txt`){print unless $s{$_}++}'

|awk '!x[$0]++'

:))))  Прямо сам себя боюсь.

> или так

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Помогите удалить повторяющиеся строки"  +1 +/
Сообщение от михалыч (ok) on 13-Май-18, 08:18 
> |awk '!x[$0]++'
> :))))  Прямо сам себя боюсь.

а не надо бояться человека с   ̶р̶у̶ж̶ь̶ё̶м̶ мечом!
(ну мастер ты, мастер - меча, ну в смысле awk'а, виртуоз однако!)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Помогите удалить повторяющиеся строки"  +/
Сообщение от PereresusNeVlezaetBuggy (ok) on 14-Май-18, 10:29 
>>> Заранее благодарю за помощь.
>> Пожалуйста.
>>
perl -e 'for(`cat file.txt`){print unless $s{$_}++}'

> |awk '!x[$0]++'

Реально круто.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "Помогите удалить повторяющиеся строки"  +/
Сообщение от Andrey Mitrofanov on 14-Май-18, 11:17 
>>>
perl -e 'for(`cat file.txt`){print unless $s{$_}++}'

>> |awk '!x[$0]++'
> Реально круто.

Пасиб.  Но я тут подумал, что "вынужден ёё повторять" -- нашёл ссылку с "прецедентом".  :-D

Хотя "мускул"[/вывих?] мозга для такого повторения тож сам по себе достижение.

| https://duckduckgo.com/?q=%22uniq%22+%D0%...
|
2015-03-30  https://unix.stackexchange.com/a/193331
  + " Strictly speaking, !a[$0]++ is not equal to uniq, because uniq requires input data sorted. "

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

19. "Помогите удалить повторяющиеся строки"  +/
Сообщение от Pahanivo (ok) on 20-Май-18, 22:23 
>
perl -e 'for(`cat file.txt`){print unless $s{$_}++}'

а че все так радуются подобному решению?
а если файл больше чем память?
хоть бы хеш строк считали, а там всю строку запихивать ... ппц конечно

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

21. "Помогите удалить повторяющиеся строки"  +/
Сообщение от Аноним (??) on 21-Май-18, 10:12 
> а если файл больше чем память?

А если дождик в засушку?
а если, а если...изворотливый фантазёр

> хоть бы хеш строк считали, а там всю строку запихивать ... ппц
> конечно

Критикуя - предлагай!
А хотя нет - уже.
> юник без сорта предлагали?

Не то также скажут, что у меня "чтой то с глазами".

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

11. "Помогите удалить повторяющиеся строки"  –1 +/
Сообщение от Всем Сосать (ok) on 17-Май-18, 15:47 
> Прямо сам себя боюсь.

May 10 '14 at 12:05 https://unix.stackexchange.com/questions/128775/fastest-uniq...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

12. "Помогите удалить повторяющиеся строки"  +1 +/
Сообщение от Andrey Mitrofanov on 17-Май-18, 17:42 
Всем Сосать, 15:47 , 17-Май-18, (11)

>> Прямо сам себя боюсь.
>  May 10 '14 at 12:05 https://unix.stackexchange.com/questions/128775/fastest-uniq...

Andrey Mitrofanov, 11:17 , 14-Май-18, (5)  http://www.opennet.ru/openforum/vsluhforumID9/10226.html#5

14ый, 15ый... Впрочем, победил.  Но опоздал.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

13. "Помогите удалить повторяющиеся строки"  +/
Сообщение от Аноним (??) on 17-Май-18, 18:31 
> Всем Сосать, 15:47 , 17-Май-18, (11)
>>> Прямо сам себя боюсь.
>>  May 10 '14 at 12:05 https://unix.stackexchange.com/questions/128775/fastest-uniq...
> Andrey Mitrofanov, 11:17 , 14-Май-18, (5)  http://www.opennet.ru/openforum/vsluhforumID9/10226.html#5
> 14ый, 15ый... Впрочем, победил.  Но опоздал.

хы, :видимо там тоже -- "чтой то с глазами" :)

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

6. "Помогите удалить повторяющиеся строки"  –9 +/
Сообщение от Pahanivo (ok) on 15-Май-18, 16:04 
> Необходимо удалить повторяющиеся строки, но без сортировки списка.
> $ sort file.txt| uniq -u > sort.txt - не подходит, так как
> я не хочу сортировать текст. Мне нужно лишь избавиться от повторяющихся
> строк.

юник без сорта предлагали?

> cat file

1
2
3
4
5
6
6
7
8
8
9

> cat file | uniq

1
2
3
4
5
6
7
8
9

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Помогите удалить повторяющиеся строки"  +4 +/
Сообщение от Аноним (??) on 16-Май-18, 08:13 
> юник без сорта предлагали?

cat file

9
7
1
2
3
4
1
5
6
6
7
8
2
8
9

cat file | uniq

9
7
1
2
3
4
1
5
6
7
8
2
9

Хмм.. Что-то пошло не так!..

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "Помогите удалить повторяющиеся строки"  –8 +/
Сообщение от Pahanivo (ok) on 16-Май-18, 10:10 
что именно? повторяющиеся строки удалились.
или у меня чтой то с глазами?
> Необходимо удалить повторяющиеся строки, но без сортировки списка.

Афтар как всегда швырнул нечеткую задачу и свалил, а все дружно набежали подрочи^Wпофантазировать над условием, и соответственно над решением? :)

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Помогите удалить повторяющиеся строки"  +2 +/
Сообщение от Аноним (??) on 16-Май-18, 10:28 
> что именно? повторяющиеся строки удалились.
> или у меня чтой то с глазами?
>> Необходимо удалить повторяющиеся строки, но без сортировки списка.
> Афтар как всегда швырнул нечеткую задачу и свалил

Нет. Там все "четко" и понятно.

> или у меня чтой то с глазами?

Да. "чтой то".

Ещё раз.
Простой тест на вниательность.

cat file
1
2
3
4
5
6
5
7
8
8
9

cat file | uniq
1
2
3
4
5
6
5
7
8
9

cat file | awk '!x[$0]++'
1
2
3
4
5
6
7
8
9


Найти отличие.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Помогите удалить повторяющиеся строки"  +1 +/
Сообщение от Andrey Mitrofanov on 16-Май-18, 10:42 
>> Афтар как всегда швырнул нечеткую задачу и свалил
> Нет. Там все "четко" и понятно.

Нет да, там всё двояко, как минимум: "удалить повторяющиеся строки" == повторяющиеся в _где_? Во всём файле(*) - первые решения, дружка за дружкой - твой uniq заход.

(*) и да, для нас, прохвессионалов скрокаудалянинга с седыми бОродами, _совершенно_ очевидно, что напрягаться, решать и показывать свой прохвеонализьм имеет смысл только с _более_ сложным "первым" вариантом. Ищущие лёгких путей "молодые ногти", да ещё с важным видом указывающие нам, как именно мы не правы....  невоспитаны и хамят старшим!

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

14. "Помогите удалить повторяющиеся строки"  –4 +/
Сообщение от Pahanivo (ok) on 18-Май-18, 15:33 
> Найти отличие.

я довольно легко решаю детские задачи ...
но в итоге были не "удалены повторяющиеся строки", а "оставлены уникальные"
ПыСы: теперь дорогие друзья ваша очередь проявить внимание и найти отличия в выделенных фразах. ИМХО на мой взгляд это несколько другая задача.
ПыСы.v.2.0: кнопка для минусов в правом верхнем углу поста.

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

15. "Помогите удалить повторяющиеся строки"  +/
Сообщение от Аноним (??) on 19-Май-18, 06:58 
> я довольно легко решаю детские задачи ...

Это не так.

> но в итоге были не "удалены повторяющиеся строки", а "оставлены уникальные"

Но "нужно лишь избавиться от повторяющихся строк"

Итог - задача не решена.


Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

16. "Помогите удалить повторяющиеся строки"  –6 +/
Сообщение от Pahanivo (ok) on 19-Май-18, 11:44 
> Итог - задача не решена.

мда, какая именно задача не решена?
удаление повторов или поиск уникальных? афтар просил повторы, если чо.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

17. "Помогите удалить повторяющиеся строки"  +1 +/
Сообщение от Анонм on 19-Май-18, 13:12 
>> Итог - задача не решена.
> мда, какая именно задача не решена?
> удаление повторов или поиск уникальных? афтар просил повторы, если чо.

Не считайте других глупее вас. "Афтара" в том числе.

Очевидно, что ТС нужно удалить из списка все повторяющиеся строки.
Неважно, где они находятся и в какой последовательности.

Важно, чтобы не было одинаковых строк. Уникальные они или нет - не имеет значения.
Но важно другое, ТС точно нужно, чтобы в файле не было сортировки,
чтобы порядок и последовательность строк не была нарушена и не было эквивалентных (равных) строк.

И с uniq и с sort ТС очевидно знаком.
В своём первом сообщении он как раз и показывает, что применив сортировку sort,
а потом uniq он получает не совсем то, что он хочет получить и что ему нужно.

Он удаляет все повторы - для этого он и применяет сортировку.
uniq режет потом лишнее. Но первоначальная сортировка строк уже нарушена.

ТС показывает тем самым свои попытки самостоятельно решить задачу.
Неужеле же он не мог сразу применить uniq ??
Конечно же мог. Но это не решит его проблему. Одинаковые строки останутся.

А как сделать, чтобы убрать повторы, но не менять порядок строк в файле - сам ТС не решил.
Поэтому и обратился на форум за помощью.

Печально, что приходится разжёвывать столь очевидные факты.

Не стоит дальше упорствовать.
Нужно уметь признавать свои ошибки.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

18. "Помогите удалить повторяющиеся строки"  –3 +/
Сообщение от Pahanivo (ok) on 19-Май-18, 22:30 
> Не считайте других глупее вас. "Афтара" в том числе.

людей глупея себя я всегда буду считать глупее себя - увы.
у меня только один вопрос: почему альтернативная точка зрения вызывает такой батхерт, ИМХО необоснованный.
лично я считаю это самым явным воинствующим долбое^Wмом ...

> Очевидно, что ТС нужно удалить из списка все повторяющиеся строки.

Простите великодушно, из каких соображения это очевидно?
Афтар лишь брякнул "постоянно повторяются", не уточнив что он под этим подразумевал.
> Неважно, где они находятся и в какой последовательности.

мусье не удосужится пояснить с чего се следует?

> Важно, чтобы не было одинаковых строк.
> Уникальные они или нет - не имеет значения.

мусье, извините, но если удалить из файла все повторяющиеся строки, в контексте всего файла, - там как раз и останутся таки уникальные.

Будоражим фантазию дальше, это так занимательно!
Кнопка для минусов все там же, ага.
ПЫСЫ: а по поводу "афтар делал какие то там потуги в консоли", дак щас столько макак которые копипастят команды в консоли, не понимая как они в принципе работают. тем паче что он даже пример кинуть не соизволил.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема


  Закладки на сайте
  Проследить за страницей
Created 1996-2018 by Maxim Chirkov  
ДобавитьПоддержатьВебмастеруГИД  
Hosting by Ihor