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


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Удаление дублирующихся строк в нескольких файлах.  (Прочитано 726 раз)

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

Оффлайн eJay

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
Всем привет. Ситуация следующая, есть несколько файлов (старые выгрузки из дб). В которых по несколько тысяч наименований товаров. Все они аккуратные и одно наименование с доп. информацией располагается на 1 строге, другое наименование на другой и.т.д. + в 2-х из трёх файлов информация дублируется.
Каким образом можно составить sh-скрипт, чтобы он прибежал по 3-4 файлам и составил из них один без дубликатов?
Заранее благодарен.
http://ruby-talks.ru - Форум русскоязычного сообщества Ruby и Ruby on Rails программистов.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
man grep
в принципе этого хватит, только с ключами разобраться

Оффлайн eJay

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
man grep
в принципе этого хватит, только с ключами разобраться

А что грепить предлагаете?
http://ruby-talks.ru - Форум русскоязычного сообщества Ruby и Ruby on Rails программистов.

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
есть повторяющийся символ во всех записях?

ключ -m 1 исключит повторы


cat file1 file2 file3 file4 | grep -m 1 ";" > text_file

могу ошибаться, тк нет возможности проверить
« Последнее редактирование: 21 Май 2010, 00:01:35 от Владимир Николаевич »

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Алгоритм примерно такой.
Пусть есть n файла.
Читаем 1 построчно и в остальных ищем эту строку. Если нашли, то удаляем в них.
Читаем 2 построчно и в остальных (кроме уже использованных, а именно 1) ищем эту строку. Если нашли, то удаляем в них.
...
Последний файл читать нет необходимости.

Оффлайн easy2002

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 2786
  • Мурманск
    • Просмотр профиля
cat file1 file2 file3 | sort | uniq > onebigfile
Tempora mutantur et nos mutantur in illis

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
cat file1 file2 file3 | sort | uniq > onebigfile
Упрощаем...
sort -u file{1..3} >onebigfile;)

Оффлайн alexander.pronin

  • Старожил
  • *
  • Сообщений: 2540
    • Просмотр профиля
Я не понял сразу задачу.
Если все надо слить в один файл, то действительно все проще (как предлагается выше).

Оффлайн truegeek

  • FPGA Designer
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4214
  • аЦкий схемотехник
    • Просмотр профиля
sort -u file{1..3} >onebigfile
красивый вариант

Оффлайн eJay

  • Автор темы
  • Любитель
  • *
  • Сообщений: 88
    • Просмотр профиля
sort -u file{1..3} >onebigfile
красивый вариант

им и воспользовался))) спасибо всем.
http://ruby-talks.ru - Форум русскоязычного сообщества Ruby и Ruby on Rails программистов.

 

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