Здравствуйте. Помогите, пожалуйста
Нужно из текстового файла выдрать все строчки, содержащие имена файлов с текущего каталога. Если можно - с пояснениями. Спасибо!
Shell, текстовый файл
Модераторы: /dev/random, Модераторы разделов
Re: Shell, текстовый файл
Если в лоб, то так:
-- но такой вариант будет перечитывать файл множество раз.
Более оптимальный пусть подскажут более крутые специалисты.
Код: Выделить всё
#обходим циклом содержимое каталога, очередной файл записываем в переменную filename
for filename in *
do
#в файле somefile ищем строки, содержащие переменную $filename
grep $filename somefile
done
-- но такой вариант будет перечитывать файл множество раз.
Более оптимальный пусть подскажут более крутые специалисты.
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Shell, текстовый файл
Michail1989 писал(а): ↑21.01.2013 17:46Нужно из текстового файла выдрать все строчки, содержащие имена файлов с текущего каталога. Если можно - с пояснениями. Спасибо!
Темы от студентов с запросами готовых решений по заданиям закрываются не глядя.
потому готовь $$ и велком в ЛС
Re: Shell, текстовый файл
У меня есть похожая задача, требующая оптимизации (не срочная и не учебная).
Есть "фотолента" и альбом, состоящий из симлинков на кадры, разбросанных по каталогам. Надо найти фотографии, не помещённые в альбом -- хотельсь бы сделать это, не пересматривая его каждый раз для каждого кадра.
Есть "фотолента" и альбом, состоящий из симлинков на кадры, разбросанных по каталогам. Надо найти фотографии, не помещённые в альбом -- хотельсь бы сделать это, не пересматривая его каждый раз для каждого кадра.
- drBatty
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
- Контактная информация:
Re: Shell, текстовый файл
если у вас есть не самый стары bash, то можно использовать ассоциативный массив.
т.е. используете имя как ключ (value тоже на что-то сгодится. Но можно просто YES туда писать). И для проверки достаточно просто посмотреть, есть такой эл-т или нет. Если это не очень большая БД, то работает. Ну а для больших - СУБД прикрутите.
ЗЫЖ в качестве ключа можно также использовать md5
Спасибо сказали: