Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вывод строки которая повторяется более n раз в *nix

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Krist



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго всем дня, может кто поможет с такой задачкой, есть утилита uniq которая после сортировки убирает или повторяющиеся строки (-u) или неповторяющиеся (-d), а как сделать чтоб вывести именно строки повторяющиеся n раз и более. Т.е. образно говоря мне из отсортированного утилитой sort файла нужно выбрать только те строки которые повторяются более n раз.
Спасибо.

Всего записей: 247 | Зарегистр. 07-03-2006 | Отправлено: 11:35 16-11-2012
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
uniq --all-repeated=separate

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 13:31 16-11-2012
renilen



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DELETE

Всего записей: 115 | Зарегистр. 13-11-2012 | Отправлено: 13:55 16-11-2012 | Исправлено: renilen, 13:55 16-11-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krist
Во-первых, совершенно излишне было создавать новую ветку, когда можно было обратиться в «UNIX Shell».
 
А по существу могу предложить вот такую строчку:
$ awk -v n=3 '++a[$0]==n' file
— работает без сортировки, но с загрузкой всего файла в память.
 
$ cat file
A
B
C
D
A
D
B
A
A
E
R
A
B
$ awk -v n=3 '++a[$0]==n' file  
A
B

 
Комментарии нужны? Или все понятно?
 


----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 04:59 17-11-2012
Krist



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum честно не понял, что Вы имели ввиду
 
ASE_DAG, спасибо, большое за решение! скорость наманого больше чем мой самописный полускрипт.
 
P.S. честно искал тему, но на эту не обратил внимание, извините.
 
 
Добавлено:
Может еще кто подскажет, как из текстового файла выбрать и вывести строки с n по k например, пока только через split -l(количество_строк_от_n_до_k), но это костыль, долго потом удалять ненужные части файла.

Всего записей: 247 | Зарегистр. 07-03-2006 | Отправлено: 20:25 17-11-2012 | Исправлено: Krist, 22:22 17-11-2012
ASE_DAG



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Krist
> Может еще кто подскажет
Может кто и подскажет, если увидит ваш вопрос. Здесь же его едва ли кто увидит. Надо, наверное, поискать более посещаемую ветку. Там выше какую-то «UNIX Shell» поминали, я думаю, там кто-нибудь знает, и даже уже ответил на ваш вопрос.

----------
Dmitry Alexandrov <321942@gmail.com> [PGP] [BTC]

Всего записей: 9272 | Зарегистр. 12-05-2005 | Отправлено: 10:14 18-11-2012 | Исправлено: ASE_DAG, 10:22 18-11-2012
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вывод строки которая повторяется более n раз в *nix


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru