У меня есть большое количество файлов в следующем формате:
tile_4665_411_1000575_w10#aa.til tile_6535_366_1100695_w30#ab.til
tile_4665_411_1000576_w10#aa.til tile_6535_366_1100712_w30#aa.til
tile_4665_411_1001046_w10#aa.til tile_6535_366_1100736_w25#aa.til
tile_4665_411_1001097_w10#aa.til tile_6535_366_1100742_w25#aa.til
tile_4665_411_1001120_w10#aa.til tile_6535_366_1100742_w25#ab.til
tile_4665_411_1001192_w10#aa.til tile_6535_366_1100742_w25#ac.til
tile_4665_411_1100653_w15#aa.til tile_6535_366_1100742_w25#ad.til
tile_4666_411_1000468_w10#aa.til tile_6535_366_1100742_w25#ae.til
tile_4666_411_1000510_w10#aa.til tile_6535_366_1100742_w25#af.til
и так далее. Это результаты разделения больших файлов на файлы меньшего размера. Отсюда и соглашение об именах (tile_ largeFile _ smallFile _uniqueidentifier_weight # split.til). Каждый отдельный smallFile вложен в largeFile (представьте, что нужно разделить квадрат на квадраты, каждый из которых имеет одинаковый размер).
Следующий шаг - cat все отдельные файлы, принадлежащие largeFile_smallFile, в один файл следующим образом:
tile_ largeFile _ smallFile .tile
например, cat tile_4665_411_*.til > tile_4665_411.tile
У нас есть место для потенциала 6700 smallFiles , хотя около 30% из них никогда не создаются , В данный момент мы запускаем задание для каждого потенциального small_File и возвращаемся из процесса, если такого файла нет.
numberofFiles=6700
listOfTiles==$(ls tile_*.til)
А затем l oop от 1 до 6700 и захват соответствующего шаблона:
PATTERN=$(ls tile_*_$COUNTER_*.til
#split filenames to get largeFile
cat $PATTERN > tile_largeFile_$COUNTER.tile
Хотя этот подход работает, он явно не изящен и может снизить наш приоритет для выполнение (из-за количества процессов, которые мы запрашиваем и т. д. c.).
Есть ли более разумный способ получить список отдельных маленьких фрагментов, которые на самом деле находятся в папке? Т.е. что-то вроде:
numberofFiles=$(ls tile_*_{1..6700}_*.til) #unique smallFile numbers that are (potentially) between 1 and 6700
В некотором смысле, я бы хотел получить уникальное количество smallFile Id'S из очень большого списка файлов.
Любая помощь очень важна!
Приветствия