Linux убрать повторяющиеся строки

Linux убрать повторяющиеся строки

Подскажите алгоритм!
Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле след. вида:
39111 39112
39111 39114
39111 39123
39112 39111 *
39112 39113
39113 39112 *
.
39123 39111 *

файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо удалить!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Оглавление

  • Удаление повторяющихся строк (Bash или awk), madskull, 13:55 , 15-Ноя-06, (1)
    • Удаление повторяющихся строк (Bash или awk), SerVnk, 14:36 , 15-Ноя-06, (2)
      • Удаление повторяющихся строк (Bash или awk), perece, 15:36 , 15-Ноя-06, (3)
        • Удаление повторяющихся строк (Bash или awk), SerVnk, 20:31 , 15-Ноя-06, (4)

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

>Подскажите алгоритм!
>Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле
>след. вида:
>39111 39112
>39111 39114
>39111 39123
>39112 39111 *
>39112 39113
>39113 39112 *
>.
>39123 39111 *
>
>файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо
>удалить!

sort -u
или
sort | uniq

1. «Удаление повторяющихся строк (Bash или awk)»
Сообщение от madskull (ok) on 15-Ноя-06, 13:55
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. «Удаление повторяющихся строк (Bash или awk)»
Сообщение от SerVnk (ok) on 15-Ноя-06, 14:36

>>Подскажите алгоритм!
>>Необходимо при помощи команд bash или awk удалить повторяющиеся сочетания в файле
>>след. вида:
>>39111 39112
>>39111 39114
>>39111 39123
>>39112 39111 *
>>39112 39113
>>39113 39112 *
>>.
>>39123 39111 *
>>
>>файл может быть до 100 строк. *-ой пометил те комбинации которые необходимо
>>удалить!
>
>sort -u
>или
>sort | uniq

sort -u удалит мне повторяющиеся строчки, а мне необходимо избавиться от повторных сочетаний. Например:
39111 39112
39112 39111
нужно удалить вторую строчку т.к. такое сочетание цифр уже есть в первой строке

Источник

Команда Linux/Unix: uniq – удаляет дубликаты строк

название

uniq – удалить повторяющиеся строки из отсортированного файла.

конспект

uniq [ ОПЦИЯ ] … [ ВХОД [ ВЫХОД ]]

Описание

Откажитесь от всех, кроме одной, последовательных идентичных строк из INPUT (или стандартного ввода), записав в OUTPUT (или стандартный вывод).

Обязательные аргументы для длинных опций обязательны и для коротких опций.

-c – граф

Префикс строки по количеству вхождений.

-d – повторил

Печатайте только повторяющиеся строки.

-D , – все повторяется [= delimit-method ] печатать все повторяющиеся строки.

Delimit-method = Разделение выполняется пустыми строками.

-f – пропуском поля = N

Избегайте сравнения первых N полей.

-i – игнорируемых случай

Игнорировать различия в случае при сравнении.

-s – скип-символы = N

Избегайте сравнения первых N символов.

-u – уникальный

Печатайте только уникальные строки.

-w – чек-символы = N

Сравните не более N символов в строках.

– помощь

Показать эту помощь и выйти.

– версия

Вывести информацию о версии и выйти.

Поле – это пробел, затем непробельные символы. Поля пропускаются до символов.

Смотрите также

Полная документация для uniq поддерживается в виде руководства в формате Texinfo. Если на вашем сайте правильно установлены программы info и uniq , команда info uniq должна предоставить вам доступ к полному руководству.

Источник

Удаление полностью идентичных (дублирующихся строк) при использовании sed

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

\tworkgroup = WORKGROUP
\tworkgroup = WORKGROUP
\tworkgroup = WORKGROUP

workgroup = WORKGROUP
workgroup = WORKGROUP33
workgroup = WORKGROUP22
workgroup= WORKGROUP
workgroup=WORKGROUP22

\tsamba = SAMBA
\tsamba = SAMBA
work = ws-1

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

Удаление дублирующихся строк dataGridView
Я хочу или удалить, или скрыть повторяющиеся строки в dataGridView. Делаю это в цикле, но удаляет.

Удаление дублирующихся строк в dataset
Приветствую. Нужно удалить дубликаты строк в DS, но .net 2.0 и сравнивание идет не по одному или.

Сложный запрос на удаление дублирующихся строк
Имеется такой запрос (где id — уникальный ключ и автоинкремент) : DELETE FROM `myTable` WHERE `id`.

Удаление дублирующихся данных при переносе
Добрый день! Нужна помощь в следующем вопросе. Есть таблица с определенным набором столбцов.

Если uniq может удалить подряд идущие индентичные строки , а также расположенные не подряд в файле , а через какие-либо другие строки, как в примере выше) и
может ли uniq удалить дубликаты строк непосредственно в проверяемом файле, не меняя структуру файла (не удаляя например пустых строк ), оставляя оригиналы строк на тех местах, где они находятся в файле , тогда покажите пример кода.
Я например, нашел только вот такую конструкцию работы uniq

uniq имя_файла_входящего имя_файла_выходящего

я уже писал выше, «полностью идентичные» — это строка , которая повторяют собой копию предыдущей (символы \s и \t визуально ничем не отличишь, но команды grep -x или uniq -D — это отличие видят)

При этом эти строки не всегда идут подряд и могут находится в разных местах документа, большие документы просматривать на наличие дублирующихся строк просматривать неудобно, решил это автоматизировать.
использую sed, так как об этой команде немного больше знаю, с ней привычней работать

так ведь это всего лишь пример и все, и ничего больше.
Ну появились там похожие строки, как уже не важно и их нужно убрать, поэтому просто запускаю проверку файла и удаляю не нужное.
Есть какой-то стиль форматирования строк в файле, пусть будет так.
Под это и пишется обработка строк и соответственно опции, которые добавит сценарий будут в том же стиле форматирования строк и будут добавлены в конфигурационный файл
Во время отработки сценария появляются дубликаты строк. (я учусь. )
Вручную удалять их или подставлять сценарию новый оригинальный файл нет желания, поэтому и хочу написать обработку, а удаление опций-дубликатов в файле.
Да мало ли применений, тем более , что не я 1-й задаю такие вопросы, по поводу дубликата строк,
Другое дело что найденные примеры не всегда работают, как например вот этот пример, найденный в сети

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

Источник

Удалить повторяющиеся строки из файла

Я составляю словарь наиболее часто используемых паролей, популярных или наиболее часто используемых пользователями (… Не спрашивайте, почему… ХАХАХА), для этого я беру текст из других словарей и т.д., но я оказываюсь в ситуации, когда есть много повторяющихся паролей, и мне нужно удалить повторяющиеся строки.

То есть, например . у нас есть такой файл: pass.txt

И его содержание:

Asdasd
Лола
любовь
Asdasd
окна
админ
Linux
Asdasd
любовь

Как видим, мы повторили «любовь«И»Asdasd«, Последнее 3 раза. Как удалить повторяющиеся строки?

Сделать это просто с помощью этой команды:

cat pass.txt | sort | uniq > pass-listos.txt

Это создаст файл с именем pass-ready.txt который будет содержать:

админ
Asdasd
Linux
Лола
любовь
окна

Команда ОЧЕНЬ проста .

  1. кошка pass.txt — »Перечислить содержимое файла.
  2. sort — »Сортировать содержимое по алфавиту.
  3. уник — »Устранение повторяющихся строк.
  4. > pass-ready.txt — »Результат предыдущей команды поместите в файл pass-ready.txt (который, поскольку его не существует, создаст его)

Это так просто . Я только что обнаружил, что команда sort да, очень хорошо . но вместе с уник, они жемчужина искусства 😀

Надеюсь, вы мне помогли.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Из Linux » GNU / Linux » Удалить повторяющиеся строки из файла

Вы можете быть заинтересованы

27 комментариев, оставьте свой

Оставьте свой комментарий Отменить ответ

Вы также можете использовать sort -u.

Поздравляю с блогом, мне очень нравится!

Да правильно.
Ничего, большое спасибо за комментарий 😀

Добро пожаловать 😉
привет

Проблема в том, что он меняет порядок слов, он работает . но в конечном итоге результат сильно отличается от оригинала по порядку (что, возможно, в некоторых случаях имеет значение)

Да, действительно, это упорядочивает слова в алфавитном порядке, поэтому, если контент был нужен БЕЗ вариаций, это решение не идеальное.

Не болтайте, а вдруг вам придет в голову не ставить команду сортировки? пожалуйста, подумайте еще немного и не пережевывайте все.

cat pass.txt | uniq> pass-ready.txt

не работает, я пробовал

не работает, потому что «повторяющиеся» строки должны быть непрерывными

это довольно полезно

Очень хорошо! Простое и понятное решение. Мне нравятся такие вещи 🙂
Я должен признать, что сделал бы что-нибудь на Python, но это решение в порядке.

спасибо ^ — ^

Здравствуйте! очень хорошо!
У меня вопрос пожалуйста
это сработает для меня в следующем примере:
ABCD 1111
DEFG 2222 45455
ABCD 1111
DEFG 2222

Строки такие же, но в них есть пробелы и еще несколько символов . проверяет ли это одно и то же слово? или по строке? Я объясняю?
с этого момента я вам большое спасибо.
Объятие

Привет,
Как я видел, при этом сравниваются строки, а не столбцы, поэтому в примере, который вы мне даете, это приведет к удалению либо 1-й строки, либо 3-й, 2-й и 4-й строк, хотя они почти идентичны, они не идентичны на 100%, потому что у них есть столбец разницы. 😉

Спасибо за комментарий ^ — ^

Спасибо тебе!! раньше оракулу требовалось час, чтобы удалить дубликаты . теперь с сортировкой кошек требуется 30 секунд !!

Мне это нужно в PHP: S

Уфф . Я PHP, я очень и очень невысокий, я не совсем программист 🙁

Для php есть array_unique (…) в официальной документации PHP, вы найдете много важных и эффективных функций.

Что касается сортировки, то, если она вам не нужна, это не обязательно . Время выполнения и память тратятся. (за то, что сделано в посте)

Вау !! словарь для грубой силы !! XD

Очень хорошее сочетание sort с uniq! Мне очень помогло удаление повторяющихся строк.

Комментарий Карлоса, несмотря на его высокомерие, недействителен. Он говорит использовать:

cat pass.txt | uniq> pass-ready.txt

однако предварительным условием uniq является упорядоченность файла. Вы должны были подумать об этом немного больше или узнать раньше.

очень хорошо, ты сэкономил мне много времени, запустив мой bash

awk ‘! array_temp [$ 0] ++’ pass.txt> pass-ready.txt
при этом линии удаляются без заказа.

Большое спасибо за ваш вклад!

Хотя было бы здорово иметь возможность сделать его уникальным, не меняя порядок, но эй, простая и полезная команда!

Спасибо, мне это очень помогло

у меня есть это
С 000006158880201502051056088364 C00-06158880
С 000007601673201503051056088364 C00-07601673
С 000008659304201504051056088364 C00-08659304
Т 0809074070562015120818144287185REAÑO RUBIOS EMILIA DORIS
Т 0809092979972016010818144287185REAÑO RUBIOS EMILIA DORIS
С 000005398451201501231044214375 C00-05398451
С 000007674996201503051000000286 C00-07674996
С 000008514288201504051000000463 C00-08514288
С 000011613498201506051056088070 C00-11613498

Как мне заставить его рисовать только дубликаты для каждого подписчика в файле и оставлять те, которые не дублируются в другом?

абонент находится на позиции 23 (10 позиций)

sort -u -k 1,1 File.txt> result.txt

Это сортирует файл по первому полю

2020 и все еще работаем, большое вам спасибо!

Bạn co thể hướng dẫn cách loại bỏ các dòng trùng lặp của nhiều текст файла в Linux или Windows được không? Cũng như trường hợp của bn, khi tôi tạo file từ iển vì tôi chia nội dung ra nên Có khá nhiều file và chắc chắn con nhiều dòng trùng lặp giữa Các file. Ví dụ: Файл 1 của tôi co 5 dòng, файл 2 co 15 dòng (co 2 dòng trùng lặp với Файл 1. Tôi muốn co kết quả, Файл 1 vẫn giữ nguyên 5 dòng, Файл 2, только 2 dòng giống, файл 1 .
Như bạn biết co nhiều li do chúng ta ko thể gộp các file txt đó lại với nhau, vì những file text từ điển rất ư là nhiều ký, chẳng hạn như Rockyou. Это то, что мы думаем, это то, что я не знаю, как это сделать в Windows, вам нужно, чтобы вы чувствовали себя виноватыми в Windows. 🙂 Hy vọng nhận được phản hồi từ bạn!

Источник

Читайте также:  Linux как запустить скрипт питона
Оцените статью