LINUX.ORG.RU

find grep cat сравнение


0

1

Всем привет! имеется список файлов в листе, порядка тысячи каждый с новой строки. Нужно сравнить этот список файлов по тому, что уже имеется на фс. Пусть вывод будет таким, чего не хватает на фс. Как это сделать? Спасибо :)

★★★

1) sort

в сотальном непонятен формат хранения списка (как он получен) - плясать надо от этого

mumpster ★★★★★
()

В списке файлов пути полные или относительные ?

В общем случае примерно так:

sort <file_list> > sorted_list
cd /<dir>
find * -type f | sort > current_list
comm -23 sorted_list current_list

Список файлов в списке должен быть при таком вызове команды find без первого слэша (/).

Для /etc, к примеру такой:

cd /etc
find * -type f | sort
...
acpi/default.sh
acpi/events/default
adjtime
adobe/mms.cfg
apache2/httpd.conf
apache2/magic
apache2/modules.d/00_default_settings.conf
...

Если формат списка файлов в листе отличный от того, который выводит find преобразуйте его.

kostik87 ★★★★★
()

while read f; do [ -e «$f» ] || echo «Not found: $f»; done < filelist

anonymous
()

find + sort + comm

anonymous
()
Ответ на: комментарий от mumpster

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

init_ ★★★
() автор топика

tar -cf 1.tar -T <ваш файл со списком>

r2d2
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.