[решено] Склеивание файлов в папках

Ответить
 • Просмотры: 1
Аватара пользователя
Тишина

[решено] Склеивание файлов в папках

Сообщение Тишина »

ОС: Linux

ФС: ntfs

файлы: бинарные, различный объём от 1кб до 160 кб

колличество файлов: по прогнозу их будет около 1 миллиарда (свыше 2тб данных)



Задача: склеить все файлы из папки в один.



Подробности:

существует большое кол-во папок, например "qqq1", "qqq1 1", "qqq1 2"... .... "qqq1 N", в них находятся файлы примерно с таким именем "3332.file1", "3339.file1", "3412.file1" и т.д. по возрастанию индекса в имени (прирост "рандомный").

нужен батник, который будет работать по всем папкам и склеивать (в порядке увеличения индекса) содержимое каждой в отдельный файл, т.е. из папки "qqq1 4" получится "FILE_qqq1 4.dat".



примечание: папок и файлов очень много (на данный момент около 50 миллионов файлов по 18500 в каждой папке), желательно что бы можно было указать с какой папки начать и сколько папок будет учавствовать, дабы предотвратить зависания и прочие неприятности, индексы у папок идут от 1 до N



P.S. эта же задача, но с решением на WINDOWS

http://forum.oszone.net/showthread.p...69#post2254369
Аватара пользователя
Тишина

Re: [решено] Склеивание файлов в папках

Сообщение Тишина »

Код:

Код: Выделить всё

#!/bin/bash
for i in `find -mindepth 1 -type d`
do
cat $i/* >> $i.file | sort -n
done



P.S. написал одно решение и максимально (как смог) его сократил

народ, есть более простой ("короткий") способ? лично я за минимализм кода Изображение
Ответить

Вернуться в «Программирование в *nix»