BSDPORTAL.RU
http://bsdportal.ru/

grep работал , теперь не работает
http://bsdportal.ru/viewtopic.php?f=58&t=28547
Страница 1 из 1

Автор:  tygra [ Чт 02 ноя, 2017 3:18 pm ]
Заголовок сообщения:  grep работал , теперь не работает

Доброго времени суток , искал как сравнить два файла . Нашел вот такую комбинацию :

grep -f file1 -vFx file2

По началу хорошо работало , выдавало разницу в несовпадающих строках без учета порядка строки. К вечеру оно перестало работать, что за фигня не пойму . По набору сей команды выдавал список строк. Сейчас тишина, ни ошибок , ни списка строк.. Два файла есть , точно разные . Что я не так делаю ?

Автор:  AMDmi3 [ Чт 02 ноя, 2017 5:07 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

С каких пор это "сравнение двух файлов"? Это "вывести строки из file2, которые не встречаются в file1". Оно, на минуту, не чувствительно к порядку строк, повторам и вообще к строкам которые есть только в file1. И ещё крайне неэффективно работает на большом file1.

Сравнение файлов - это в общем случае cmp или diff.

Автор:  tygra [ Чт 02 ноя, 2017 6:27 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

AMDmi3 писал(а):
С каких пор это "сравнение двух файлов"? Это "вывести строки из file2, которые не встречаются в file1". Оно, на минуту, не чувствительно к порядку строк, повторам и вообще к строкам которые есть только в file1. И ещё крайне неэффективно работает на большом file1.

Сравнение файлов - это в общем случае cmp или diff.


Большом это каким объемом ? Мне собственно и нужна была разница , т.е. то чего нет в другом файле не зависимо от положения строк . И под "неэффективно" что подразумевается ? Крайне ресурсозатратно или глючно ?

Автор:  AMDmi3 [ Чт 02 ноя, 2017 7:24 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

tygra писал(а):
Большом это каким объемом ? Мне собственно и нужна была разница , т.е. то чего нет в другом файле не зависимо от положения строк . И под "неэффективно" что подразумевается ? Крайне ресурсозатратно или глючно ?

Ресурсозатратно по памяти (он засасывает весь file1 в память) и не исключено что по CPU (он, в теории, может строить trie или единый конечный автомат из всех строк, но не факт что он тупо не перебирает их по одной).

Автор:  tygra [ Чт 02 ноя, 2017 8:17 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

AMDmi3 писал(а):
tygra писал(а):
Большом это каким объемом ? Мне собственно и нужна была разница , т.е. то чего нет в другом файле не зависимо от положения строк . И под "неэффективно" что подразумевается ? Крайне ресурсозатратно или глючно ?

Ресурсозатратно по памяти (он засасывает весь file1 в память) и не исключено что по CPU (он, в теории, может строить trie или единый конечный автомат из всех строк, но не факт что он тупо не перебирает их по одной).


А тогда не страшно , это единственная возложенная на сервер задача ( нужный скрипт создает ) , памяти у него валом , ровно как и ресурса CPU , отдельно выделенная не большая железка для управления микротиком т.к. сам микрот такие файлы вертеть не может ... Главное что бы не глюкало. Что то я вроде ничего не делал и оно заработало ... Что то это напрягает , таких чудес от фри не должно быть , где то я накосячил, а где не пойму пока ....

Автор:  tygra [ Пт 03 ноя, 2017 8:58 am ]
Заголовок сообщения:  Re: grep работал , теперь не работает

Всплыл другой "косяк" выше указанная команда игнорирует совпадения .... думаю ... т.е. если есть две или три одинаковые строки то это дело игнорирует , есть и ладно .... как бы это "исправить " ?

Автор:  arrowdodger [ Пт 03 ноя, 2017 10:32 am ]
Заголовок сообщения:  Re: grep работал , теперь не работает

Использовать уже diff -u, наконец?

Автор:  AMDmi3 [ Пт 03 ноя, 2017 2:32 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

Я на этот "косяк" явно указал. Нужно разобраться что вам конкретно нужно, для начала.

Автор:  tygra [ Вс 05 ноя, 2017 12:01 pm ]
Заголовок сообщения:  Re: grep работал , теперь не работает

Спасибо Вам что не "прошли мимо" . Сравнение двух списков маков , в одном то что есть , в другом то к чему нужно привести то что есть . Далее формировка скрипта управления микротиком для внесения нужных изменений в фаервол... К сожалению на микротике не возможно быстро что либо сделать с фаерволом , все построчно и последовательно и не всегда адекватно как на фре ,большие списки маков он ворочать не может, пришлось заводить отдельную машину на фри , для формирования скрипта , так оказалось проще и быстрее значительно. На данный момент скрипт проходит холостую "обкатку" , пока все работает , на днях запущу в нагрузку ...

Автор:  AMDmi3 [ Пн 06 ноя, 2017 1:51 am ]
Заголовок сообщения:  Re: grep работал , теперь не работает

sort -u + diff/comm (сортируем списки маков, потом получаем что добавилось или удалилось)

Страница 1 из 1 Часовой пояс: UTC + 4 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/