Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Поиск дубликатов слов  (Прочитано 506 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Stepanishev

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Поиск дубликатов слов
« : 16 Ноябрь 2016, 12:03:37 »
Добрый день!

Имеется:
(Нажмите, чтобы показать/скрыть)

Нужно вывести строки с одинаковыми MAC, чтобы их потом подчистить =)
« Последнее редактирование: 18 Ноябрь 2016, 09:41:57 от Stepanishev »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #1 : 16 Ноябрь 2016, 12:13:06 »
sort -k6,6
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Dot-mitsu

  • Активист
  • *
  • Сообщений: 250
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #2 : 17 Ноябрь 2016, 18:02:12 »
А grep не поможет?

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3102
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #3 : 17 Ноябрь 2016, 18:54:31 »
Dot-mitsu,

grep - print lines matching a pattern
sort - sort lines of text files

И еще раз прочитайте вопрос. Надо отсортировать, а не выбрать строки
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Stepanishev

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #4 : 18 Ноябрь 2016, 09:30:33 »
Dot-mitsu,

grep - print lines matching a pattern
sort - sort lines of text files

И еще раз прочитайте вопрос. Надо отсортировать, а не выбрать строки

Вообще, нужно вывести строки с одинаковыми MAC, чтобы их потом подчистить =)
« Последнее редактирование: 18 Ноябрь 2016, 09:32:05 от Stepanishev »

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #5 : 18 Ноябрь 2016, 11:57:01 »
вывести строки с одинаковыми MAC, чтобы их потом подчистить
Вручную? Зачем? Добавьте ключ -u и сразу получите что надо.
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн Длиннорогий

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #6 : 18 Ноябрь 2016, 12:15:42 »
Azure, если не ошибаюсь, sort сортирует только полностью идентичные строки, а у автора
host printserver18_18 { hardware ethernet 00:11:6b:40:3d:04; fixed-address 192.168.80.233;}
host printserver321 { hardware ethernet 00:11:6b:40:3d:04; fixed-address 192.168.80.234;}[/spoiler]
совпадает только часть строки (МАК).

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #7 : 18 Ноябрь 2016, 12:19:05 »
Garrdo, для решения и добавлен ключ -k6,6
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3102
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #8 : 18 Ноябрь 2016, 12:21:10 »
Garrdo, вы ошибаетесь. точнее по "умолчанию" он так и делает, но там есть еще ключики,которые обозначают, с какого слова строки наать и каким закончить (даже пример покзан -k6,6, где первая цифра 6 обозначает, что начать с 6го слова и закончить 6ым словом, остальные слова при сортировке игнорировать), ключ -u - оставить только уникальные. то есть

Код: Bash
  1. sort -k6,6 -u
отсортирует по 6му слову и оставит только одно вхождение оного в строку, остальные слова в строке будет игнорировать
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн Длиннорогий

  • Активист
  • *
  • Сообщений: 257
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #9 : 18 Ноябрь 2016, 12:27:25 »
Azure, EvangelionDeath, я ответил на сообщение Azure о sort -u, а не про ключ-k6.6 =) То бишь, пояснить автору, что решение не в последнем посте Azure, в добавлении оного к описанному первоначально.

Оффлайн EvangelionDeath

  • Администратор
  • Старожил
  • *
  • Сообщений: 3102
  • Ubuntu Mate 16.04 х64
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #10 : 18 Ноябрь 2016, 13:40:58 »
sort -k6,6

Вручную? Зачем? Добавьте ключ -u и сразу получите что надо.

Azure, если не ошибаюсь, sort сортирует только полностью идентичные строки, а у автора

Я наверное читать разучился. Ну и мыс Azure сделали ошибочные выводы с вашего сообщения
Fujitsu UH552: Intel Core i3-3217U, 16GB DDR3 1600MHz, Intel HD4000, Intel 535 120GB/Ubuntu 16.04 Mate
HP 625: AMD Athlon P320, 4GB DDR3 1333MHz, AMD HD4250, Seagate Momentus/Ubuntu 14.04 Mate

Оффлайн yumisst

  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #11 : 18 Ноябрь 2016, 13:47:55 »
Если я правильно понимаю ТС, нужно вывести статистику по всем вхождениям разных МАС адресов по порядку чтоли? т.е. сколько раз встретился один и тот же шаблон в файле и вообще сколько их там уникальных, сделать выборку по каждому?

Пользователь добавил сообщение 18 Ноябрь 2016, 23:04:11:
Dot-mitsu,

grep - print lines matching a pattern
sort - sort lines of text files

И еще раз прочитайте вопрос. Надо отсортировать, а не выбрать строки

Вообще, нужно вывести строки с одинаковыми MAC, чтобы их потом подчистить =)

В общем, стало интересно и задумался, а что сложнее: вывести или подсчитать? :)
как-то проще у меня не получилось...

:~$ cat file_1 | sort -u | awk '{print NR, $1}' > file_2
:~$ cat file_1 | sort -u | xargs -i grep -Fxc {} file_1 | awk '{print NR, $1 }' > file_3
:~$ join file_2 file_3 | awk '{ print $2, "-->", $3 }'

ну, в данном случае sort конечно с ключами как писали выше.
« Последнее редактирование: 18 Ноябрь 2016, 23:04:11 от yumisst »

Оффлайн Stepanishev

  • Автор темы
  • Любитель
  • *
  • Сообщений: 51
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #12 : 22 Ноябрь 2016, 17:08:27 »
Почти)
А можно ли, чтобы он между слов искал? Типа: ethernet 00:14:D1:72:34:2C;
а затем выводил одинаковые строки с этими значениями?

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 5664
  • elementaryOS 0.4 Loki, i3wm on Debian9
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #13 : 22 Ноябрь 2016, 17:29:54 »
Код: Bash
  1. sort -k6,6 file | uniq -f5 -w20 -D
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн yumisst

  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #14 : 22 Ноябрь 2016, 19:31:02 »
Да уж ли.... ребята, вы пробуете что пишут? А хотя в твоем случае вообще проще, выводить grep-ом
« Последнее редактирование: 23 Ноябрь 2016, 14:57:51 от yumisst »

 

Страница сгенерирована за 0.074 секунд. Запросов: 24.