Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование в *nix (http://forum.oszone.net/forumdisplay.php?f=35)
-   -   [решено] Склеивание файлов в папках (http://forum.oszone.net/showthread.php?t=272030)

Тишина 14-11-2013 13:54 2254406

Склеивание файлов в папках
 
ОС: 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

Тишина 02-04-2014 13:24 2331993

Код:

#!/bin/bash

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


P.S. написал одно решение и максимально (как смог) его сократил
народ, есть более простой ("короткий") способ? лично я за минимализм кода =)


Время: 23:35.

Время: 23:35.
© OSzone.net 2001-