URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5391
[ Назад ]

Исходное сообщение
"Рекурсивный проход по каталогу"

Отправлено ticon , 04-Май-06 15:05 
Подскажите плиз как сделать следующее:
есть каталог с такой структурой:
folder1
    1.gz
    2.gz
    .
    n.gz
folderN
    1.gz
    .
    n.gz

Нужно пройтись по всем папочкам и слить в один файл все файлы содержащие ключевое слово (например емаил "To: pupkin@ru"), вставля между файлами 3 пустых строки.

Заранее благодарен.


Содержание

Сообщения в этом обсуждении
"Рекурсивный проход по каталогу"
Отправлено Bob , 04-Май-06 22:20 
man ftw

"Рекурсивный проход по каталогу"
Отправлено phpcoder , 05-Май-06 06:48 
>man ftw

Ему вроде как shell-скрипт нужен.

2автор: первое что приходит в голову это grep. С ключиком -r будет искать рекурсивно, с ключиком -l выдаст только имена файлов где содержится искомое слово. Потом можно через xargs и, к примеру, cat всё это объединить.

Но. Судя по твоему "рисунку" у тебя там не простые файлы. Для простых файлов подойдёт grep, для *.gz используй zgrep, а для *.bz используй bzgrep. Если предполагаются что файлы могут быть и сжатые и не сжатые, то, наверное, нужно просто найти все файлы (find . -type f) и потом уже в зависимости от их имени применять к ним ту или иную команду. Также имеет смысл сказать find'у, чтобы он не искал картинки ( ! -iname '*.jpg' and ! -iname '*.png' -and ! -iname '*.gif')

Вообщем, всё зависит от твоей ситуации и задачи :)



"Рекурсивный проход по каталогу"
Отправлено ticon , 05-Май-06 10:20 
Всем спасибо начало получаться.