- Помогите удалить повторяющиеся строки, михалыч, 07:03 , 13-Май-18 (1)
> Есть файл, в нём постоянно повторяются строки. Необходимо удалить повторяющиеся строки, > но без сортировки списка. > $ 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 знак "!" приходится экранировать
- Помогите удалить повторяющиеся строки, Andrey Mitrofanov, 08:01 , 13-Май-18 (2) +4
>> Заранее благодарю за помощь. > Пожалуйста. > perl -e 'for(`cat file.txt`){print unless $s{$_}++}' |awk '!x[$0]++' :)))) Прямо сам себя боюсь. > или так
- Помогите удалить повторяющиеся строки, михалыч, 08:18 , 13-Май-18 (3) +1
> |awk '!x[$0]++' > :)))) Прямо сам себя боюсь.а не надо бояться человека с ̶р̶у̶ж̶ь̶ё̶м̶ мечом! (ну мастер ты, мастер - меча, ну в смысле awk'а, виртуоз однако!)
- Помогите удалить повторяющиеся строки, PereresusNeVlezaetBuggy, 10:29 , 14-Май-18 (4)
>>> Заранее благодарю за помощь. >> Пожалуйста. >> perl -e 'for(`cat file.txt`){print unless $s{$_}++}' > |awk '!x[$0]++' Реально круто.
- Помогите удалить повторяющиеся строки, Andrey Mitrofanov, 11:17 , 14-Май-18 (5)
>>> 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. "
- Помогите удалить повторяющиеся строки, Pahanivo, 22:23 , 20-Май-18 (19)
> perl -e 'for(`cat file.txt`){print unless $s{$_}++}' а че все так радуются подобному решению? а если файл больше чем память? хоть бы хеш строк считали, а там всю строку запихивать ... ппц конечно
- Помогите удалить повторяющиеся строки, Аноним, 10:12 , 21-Май-18 (21)
> а если файл больше чем память?А если дождик в засушку? а если, а если...изворотливый фантазёр > хоть бы хеш строк считали, а там всю строку запихивать ... ппц > конечно Критикуя - предлагай! А хотя нет - уже. > юник без сорта предлагали? Не то также скажут, что у меня "чтой то с глазами".
- Помогите удалить повторяющиеся строки, Andrey Mitrofanov, 10:32 , 21-Май-18 (22)
> а если файл больше чем память? > хоть бы хеш строк считали, а там всю строку запихивать ... ппц > конечно А если ты сам решил упрощённую для себя любимого постановку задачи - uniq-ом, а для решивших более сложную постановку решил ещё поусложнять? В принципе, да, согласен! Оттачивать мастерство можно и на одноразовом однострочнике, прикручивая к нему хеши, БД, внешнюю сортировку и де-сортировку... Подбираешь для себя новую более мАстерскую постановку?
- Помогите удалить повторяющиеся строки, Pahanivo, 11:10 , 21-Май-18 (23)
> В принципе, да, согласен! Оттачивать мастерство можно и на одноразовом > однострочнике, прикручивая к нему хеши, БД, внешнюю сортировку и де-сортировку... > Подбираешь для себя новую более мАстерскую постановку?оттачивать что-либо и подбирать тут малополезно ввиду отсутствия задачи как таковой и примеров исходных данных.
- Помогите удалить повторяющиеся строки, Всем Сосать, 15:47 , 17-Май-18 (11) –1
- Помогите удалить повторяющиеся строки, Pahanivo, 16:04 , 15-Май-18 (6) –9 [V]
> Необходимо удалить повторяющиеся строки, но без сортировки списка. > $ 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
- Помогите удалить повторяющиеся строки, Аноним, 08:13 , 16-Май-18 (7) +4
> юник без сорта предлагали?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 Хмм.. Что-то пошло не так!..
- Помогите удалить повторяющиеся строки, Pahanivo, 10:10 , 16-Май-18 (8) –8 [V]
что именно? повторяющиеся строки удалились. или у меня чтой то с глазами? > Необходимо удалить повторяющиеся строки, но без сортировки списка. Афтар как всегда швырнул нечеткую задачу и свалил, а все дружно набежали подрочи^Wпофантазировать над условием, и соответственно над решением? :)
- Помогите удалить повторяющиеся строки, Аноним, 10:28 , 16-Май-18 (9) +2
> что именно? повторяющиеся строки удалились. > или у меня чтой то с глазами? >> Необходимо удалить повторяющиеся строки, но без сортировки списка. > Афтар как всегда швырнул нечеткую задачу и свалилНет. Там все "четко" и понятно. > или у меня чтой то с глазами? Да. "чтой то". Ещё раз. Простой тест на вниательность. 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 Найти отличие.
- Помогите удалить повторяющиеся строки, Andrey Mitrofanov, 10:42 , 16-Май-18 (10) +1
>> Афтар как всегда швырнул нечеткую задачу и свалил > Нет. Там все "четко" и понятно.Нет да, там всё двояко, как минимум: "удалить повторяющиеся строки" == повторяющиеся в _где_? Во всём файле(*) - первые решения, дружка за дружкой - твой uniq заход. (*) и да, для нас, прохвессионалов скрокаудалянинга с седыми бОродами, _совершенно_ очевидно, что напрягаться, решать и показывать свой прохвеонализьм имеет смысл только с _более_ сложным "первым" вариантом. Ищущие лёгких путей "молодые ногти", да ещё с важным видом указывающие нам, как именно мы не правы.... невоспитаны и хамят старшим!
- Помогите удалить повторяющиеся строки, Pahanivo, 15:33 , 18-Май-18 (14) –5 [V]
> Найти отличие.я довольно легко решаю детские задачи ... но в итоге были не "удалены повторяющиеся строки", а "оставлены уникальные" ПыСы: теперь дорогие друзья ваша очередь проявить внимание и найти отличия в выделенных фразах. ИМХО на мой взгляд это несколько другая задача. ПыСы.v.2.0: кнопка для минусов в правом верхнем углу поста.
- Помогите удалить повторяющиеся строки, Аноним, 06:58 , 19-Май-18 (15) –1
> я довольно легко решаю детские задачи ...Это не так. > но в итоге были не "удалены повторяющиеся строки", а "оставлены уникальные" Но "нужно лишь избавиться от повторяющихся строк" Итог - задача не решена.
- Помогите удалить повторяющиеся строки, Pahanivo, 11:44 , 19-Май-18 (16) –7 [V]
> Итог - задача не решена.мда, какая именно задача не решена? удаление повторов или поиск уникальных? афтар просил повторы, если чо.
- Помогите удалить повторяющиеся строки, Анонм, 13:12 , 19-Май-18 (17) –1
>> Итог - задача не решена. > мда, какая именно задача не решена? > удаление повторов или поиск уникальных? афтар просил повторы, если чо.Не считайте других глупее вас. "Афтара" в том числе. Очевидно, что ТС нужно удалить из списка все повторяющиеся строки. Неважно, где они находятся и в какой последовательности. Важно, чтобы не было одинаковых строк. Уникальные они или нет - не имеет значения. Но важно другое, ТС точно нужно, чтобы в файле не было сортировки, чтобы порядок и последовательность строк не была нарушена и не было эквивалентных (равных) строк. И с uniq и с sort ТС очевидно знаком. В своём первом сообщении он как раз и показывает, что применив сортировку sort, а потом uniq он получает не совсем то, что он хочет получить и что ему нужно. Он удаляет все повторы - для этого он и применяет сортировку. uniq режет потом лишнее. Но первоначальная сортировка строк уже нарушена. ТС показывает тем самым свои попытки самостоятельно решить задачу. Неужеле же он не мог сразу применить uniq ?? Конечно же мог. Но это не решит его проблему. Одинаковые строки останутся. А как сделать, чтобы убрать повторы, но не менять порядок строк в файле - сам ТС не решил. Поэтому и обратился на форум за помощью. Печально, что приходится разжёвывать столь очевидные факты. Не стоит дальше упорствовать. Нужно уметь признавать свои ошибки.
- Помогите удалить повторяющиеся строки, Pahanivo, 22:30 , 19-Май-18 (18) –5 [V]
> Не считайте других глупее вас. "Афтара" в том числе.людей глупея себя я всегда буду считать глупее себя - увы. у меня только один вопрос: почему альтернативная точка зрения вызывает такой батхерт, ИМХО необоснованный. лично я считаю это самым явным воинствующим долбое^Wмом ... > Очевидно, что ТС нужно удалить из списка все повторяющиеся строки. Простите великодушно, из каких соображения это очевидно? Афтар лишь брякнул "постоянно повторяются", не уточнив что он под этим подразумевал. > Неважно, где они находятся и в какой последовательности. мусье не удосужится пояснить с чего се следует? > Важно, чтобы не было одинаковых строк. > Уникальные они или нет - не имеет значения. мусье, извините, но если удалить из файла все повторяющиеся строки, в контексте всего файла, - там как раз и останутся таки уникальные. Будоражим фантазию дальше, это так занимательно! Кнопка для минусов все там же, ага. ПЫСЫ: а по поводу "афтар делал какие то там потуги в консоли", дак щас столько макак которые копипастят команды в консоли, не понимая как они в принципе работают. тем паче что он даже пример кинуть не соизволил.
- Помогите удалить повторяющиеся строки, Аноним, 12:28 , 21-Май-18 (24) –1
Шо, опять?> людей глупея себя я всегда буду считать глупее себя - увы. Новый оборот речи - "глупея себя". Может всё же "глупее"? Хотя нет. Именно "глупея". Не по дням, а по часам. > у меня только один вопрос: почему альтернативная точка зрения вызывает такой батхерт, > ИМХО необоснованный.
Обоснованный. Хе-хе.. у кого что болит - тот о том и говорит. Очевидно же, что у вас явно подгорает в одном месте и "рвёт пукан". Вы так стараетесь сделать хорошую мину при плохой игре, и убедить окружающих в своей правоте - это явно говорит о вашей пристрастности. Почему? Да потому, что в глубине души вы прекрасно понимаете и осознаёте, что облажались со своим советом. Но признать это - это выше ваших сил. Не можете. Ошибиться может любой. Это не страшно. Но признавать свои ошибки может не каждый. Поэтому вы и пристрастны. И все у вас виноваты. И ТС - > Афтар как всегда швырнул нечеткую задачу и свалил "Афтар как всегда" - плохому танцору всегда что-то мешает. И остальные без вины виноваты - > все дружно набежали подрoчи^Wпофантазировать над условием, и соответственно над решением У вас, что, комплекс неполноценности на эту тему? >> Очевидно, что ТС нужно удалить из списка все повторяющиеся строки. > Простите великодушно, из каких соображения это очевидно? Если вы этого не видите - то у вас действительно "чтой то с глазами". Мне понятно ваше желание и стремление выделиться и повыпендриваться. Ну как же. Все тут тужатся, чего-то там изображают, придумывают. И тут выхожу я, весь в таком белом. Что, бл.! Не ждали? А я - вот он, нарисовался - .уй сотрёшь! > юник без сорта предлагали? "Афтар" "юник" вначале ещё пробовал. Но мы же этого не замечаем, мы не видим. Потому что он его с "сортом" пробовал. А без "сорта" "афтар" не сможет. Не догадается. Он же "глупея" меня. > Афтар лишь брякнул "постоянно повторяются", не уточнив что он под этим подразумевал. Заметьте, как вы выражаетесь - "афтар", "брякнул". Хорошие манеры? Не, не слышал. Да, это не про вас. А жаль. >> Неважно, где они находятся и в какой последовательности. > мусье не удосужится пояснить с чего се следует? >> Важно, чтобы не было одинаковых строк. >> Уникальные они или нет - не имеет значения. > мусье, извините, но если удалить из файла все повторяющиеся строки, в контексте > всего файла, - там как раз и останутся таки уникальные. > Будоражим фантазию дальше, это так занимательно! > Кнопка для минусов все там же, ага. Да, в курсе. И минусуют вам за твердолобость и упёртость. За нежелание признавать свои просчёты. > ПЫСЫ: а по поводу "афтар делал какие то там потуги в консоли", > дак щас столько макак которые копипастят команды в консоли, не понимая > как они в принципе работают. тем паче что он даже пример > кинуть не соизволил. Ну, что же. Ждём очередную "гнилую отмазку" в стиле - какие "Все вокруг нехорошие, один я Дартаньян". Давай дальше, жги. Набрасывай, маленький, завистливый и злобный троль.
- Помогите удалить повторяющиеся строки, Pahanivo, 21:28 , 21-Май-18 (25) –2
эко бомбануло, я прямо вижу забрызганный слюнями в хлам монитор :)> Необходимо удалить повторяющиеся строки, но без сортировки списка. Ок. Попробую на пальцах. Есть три строки: 3 3 3 В каждой по одному символу, первая строка "3", затем идут ДВА ПОВТОРЕНИЯ (строки повторяются, повторяющиеся строки, ИСХОДНАЯ строка дважды повторяется). Имеем формулировку: "удалить повторяющиеся". Самое время определится что такое "повторяющиеся". Я считаю, что повторяющиеся это ВТОРАЯ и ТРЕТЬЯ строки. Но код "sort | uniq -u" грохнет все три строки. Это я к тому, что "афтар там пытался потужится в шеле, и вообще все и так понятно", но лично я уже вижу противоречие, и мне задача неясна. Но при этом он пишет, что его не у страивает только сортировка. Еще пример "удалить повторяющиеся": 1 2 3 2 2 4 2 Дак что же является "повторяющимися строками" подлежащими удалению в данном примере? 1) Ваше решение грохнет все строки "2", кроме 2й. 2) Афтар своим "sort | uniq -u" грохнет все строки "2" (его не устраивает только сортировка, афтар же пытался) 3) А если считать что повторения это не в контексте всего файла, а только последовательные - то вообще грохнуть надо 5ю строку. А теперь, мой анонимный друг, прекрати заниматься анонимизмом, и просто для себя выбери вариант, и самое главное, обоснуй выбор (пукан не забудь только подвязать, а то опять порвет). ПыСы: а по поводу упертости: этож надо было столько раз зайти чтобы минусов понаставить, анонимы такие анонимы :)
- Помогите удалить повторяющиеся строки, Аноним, 19:20 , 10-Июл-18 (28)
Вообще uniq без sort, но могли бы свой юник переизобрести, напримерwhile read -r l ; do [ "$l" != "$p" ] && echo "$l" ; p="$l" ; done
- Помогите удалить повторяющиеся строки, iklingen, 21:16 , 26-Июл-18 (29) +2
Идея для большого количества строк данных: 1) к исходному файлу добавляем нумерацию строк (индексы) как некоторое поле, например в первых нескольких позициях:$cat file 7 5 2 7 2 0 3 1 2 3 4 5 0 8 4 2 $cat -n file 1 7 2 5 3 2 4 7 5 2 6 0 7 3 8 1 9 2 10 3 11 4 12 5 13 0 14 8 15 4 16 2
2) сортируем по данным с удалением дублей: $cat -n file | sort -u -k 2 6 0 8 1 3 2 7 3 11 4 2 5 1 7 14 8 3) теперь сортируем по номерам строк/индексам: $cat -n file | sort -u -k 2 | sort -n 1 7 2 5 3 2 6 0 7 3 8 1 11 4 14 8 4) и убираем индексы: $cat -n file | sort -u -k 2 | sort -n | cut -f2 7 5 2 0 3 1 4 8
- Помогите удалить повторяющиеся строки, Pahanivo, 10:19 , 27-Июл-18 (30)
еще один любитель решать задачи без условий?
- Помогите удалить повторяющиеся строки, iklingen, 20:11 , 27-Июл-18 (31)
> еще один любитель решать задачи без условий?В реальности, чаще всего, условия еще более расплывчаты. Так что, нормально...
- Помогите удалить повторяющиеся строки, Pahanivo, 23:16 , 28-Июл-18 (32)
> В реальности, чаще всего, условия еще более расплывчаты. Так что, нормально...В добрый путь :) Дату только смотреть не забываем ...
|