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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

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

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

Оффлайн Stepanishev

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

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

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

Оффлайн Azure

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

Оффлайн Dot-mitsu

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

Оффлайн EvangelionDeath

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

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

И еще раз прочитайте вопрос. Надо отсортировать, а не выбрать строки
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн Stepanishev

  • Автор темы
  • Любитель
  • *
  • Сообщений: 57
    • Просмотр профиля
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

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
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

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

Оффлайн EvangelionDeath

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

Код: (bash) [Выделить]
sort -k6,6 -uотсортирует по 6му слову и оставит только одно вхождение оного в строку, остальные слова в строке будет игнорировать
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

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

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

Оффлайн EvangelionDeath

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

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

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

Я наверное читать разучился. Ну и мыс Azure сделали ошибочные выводы с вашего сообщения
HP Pro 840 G3: Intel i5-6300U, 32GB DDR4 2133MHz, Intel 520, Intel Pro 2500 180GB/Ubuntu 22.04
Dell Latitude 5590: Intel i5-8350U, 16GB DDR4 2400MHz, Intel 620, Samsung 1TB/Ubuntu 22.04

Оффлайн 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

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

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Поиск дубликатов слов
« Ответ #13 : 22 Ноября 2016, 17:29:54 »
Код: (bash) [Выделить]
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.051 секунд. Запросов: 23.