The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"файл1 + файл2 = новые строки"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"файл1 + файл2 = новые строки"
Сообщение от Sergei Искать по авторуВ закладки on 29-Апр-03, 00:53  (MSK)
Здравствуйте!
Есть, подозреваю, несложная задача: сравнить два файла. Строки, которых нет в первом файле, но есть во втором, вывести на экран. Убит вечер, а нормального решения нет. Пытался всё это проделать при помощи diff. Но обнаружил, что у него сильная привязка к местоположению строк. То есть, если строка1 из первого файла есть во втором, но находится где-нибудь в 100-й позиции, то это будет как удаление строки1 и добавление строки100. А хотелось бы, чтоб в этом случае (строка есть в обоих файлах), она не считалась новой и не печаталась бы.
Может требуется более простое построчное сравнение? Может это надо не diff'ом?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "файл1 + файл2 = новые строки"
Сообщение от Bart_Simpson emailИскать по авторуВ закладки on 29-Апр-03, 06:19  (MSK)
sort + diff = ?
  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "файл1 + файл2 = новые строки"
Сообщение от Sergei Искать по авторуВ закладки on 29-Апр-03, 15:34  (MSK)
>sort + diff = ?
так и делал. только в одном файле пара сотен строк, а в другом - пара десятков. так что разнос строк большой... и получается как раз то, о чём выше писал.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "файл1 + файл2 = новые строки"
Сообщение от Parish Искать по авторуВ закладки on 29-Апр-03, 23:57  (MSK)
на перле в 10 строчек, считываешь 1ый файл в хеш, а потом смотришь совпадения
  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "файл1 + файл2 = новые строки"
Сообщение от Sergei Искать по авторуВ закладки on 06-Май-03, 18:29  (MSK)
>на перле в 10 строчек, считываешь 1ый файл в хеш, а потом
>смотришь совпадения
увы. не знаю перла. не успел пока.

а решение получилось, по крайней мере, пока такое:
файл1 объединяем с файл2. получился файл3.
в нём есть повторяющиеся строки, от которых избавляемся
sort -u ... получаем файл4.
сравнивая diff'ом файл3 и файл4 получаем, собственно,
требуемую разницу.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "файл1 + файл2 = новые строки"
Сообщение от konst emailИскать по авторуВ закладки on 06-Май-03, 19:47  (MSK)
>>на перле в 10 строчек, считываешь 1ый файл в хеш, а потом
>>смотришь совпадения
>увы. не знаю перла. не успел пока.
>
>а решение получилось, по крайней мере, пока такое:
>файл1 объединяем с файл2. получился файл3.
>в нём есть повторяющиеся строки, от которых избавляемся
>sort -u ... получаем файл4.
>сравнивая diff'ом файл3 и файл4 получаем, собственно,
>требуемую разницу.

Можно пользоваться командочкой uniq...
cat file1 file2 | sort | uniq -u > uniq_lines

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "файл1 + файл2 = новые строки"
Сообщение от Sergei Искать по авторуВ закладки on 07-Май-03, 22:51  (MSK)
>Можно пользоваться командочкой uniq...
>cat file1 file2 | sort | uniq -u > uniq_lines

Классно! uniq ещё и повторяющиеся строки находит. Ето хорошо.
Спасибо!

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру