Всем привет.
Есть файл со списком системы var_mass (все файлы ./).
Так же есть файл со списком того что перекачалось на другой диск var_disk.
Надо сравнить два этих файла,то чего нет в var_disk записать в файл var_uncp.
Сейчас это обрабатывается grep -v -f var_disk var_mass >> var_uncp.
Но дело в том что файлов много(1.5 Tb сам файл var_mass 59Mb ) и grep уже отожрал 12Gb RAM.И работает уже почти сутки.
Вот вопрос можноли провести выборку иначе?
man diff
Это специально для вашего случая. Сам недавно похожее делал.
что то странно. Делаю diff
что то странно.
Делаю diff --suppress-common-lines --text var_disk var_massiv >> var_uncp
du -h var_*
28M var_disk
49M var_massiv
79M var_uncp
Странно.Может подскажете с какие параметры?
Важно потом этот файл скормить cp
.
--left-column(сначала посмотрев на вывод с опцией-y).Ну и пошариться по возможным форматам вывода
diff'а...В качестве одного из вариантов я бы посмотрел на
gawk.:wq
--
Live free or die
diff -n
diff -n --suppress-common-line -a var_massiv var_disk >> var_uncp
du -h var_*
28M var_disk
49M var_massiv
27M var_uncp
А при просмотре строки в var_uncp и var_disk одинаковы
Вобщем похоже вот на это diff
Вобщем похоже вот на это
diff -y var_massiv var_disk | grep "<" | awk '{print $1}' >> var_uncp
Вобщем лучше всего
Вобщем лучше всего подошло
sort var_massiv > mass.sort && sort var_disk > disk.sort && comm -1 -3 disk.sort massiv.sort > comm.out