Поскольку вы не указали никаких требований к языку, вот возможность использования Python 3.
#/usr/bin/env python3
from glob import glob
from os.path import basename
import re
for prefix in ('CHANGELOG', 'FILE_CHANGELOG'):
files = dict((int(re.split('[_.]', basename(f))[-2]), f)
for f in glob('*-*-*/%s_*.TXT' % prefix))
out_file = '%s_%d-%d.TXT' % (prefix, min(files.keys()), max(files.keys()))
with open(out_file, 'w') as f_out:
for date in sorted(files.keys()):
with open(files[date]) as f_in:
for line in f_in:
f_out.write(line)
f_out.write("\n")
Он в основном использует glob
и basename
для перечисления и анализа имен файлов с сортировкой по дате. Значения min / max используются для построения имени выходного файла, и все файлы записываются туда по порядку. Не забудьте настроить шаблоны в соответствии с вашей реальной структурой каталогов, если это необходимо. Затем просто chmod
и запустите:
$ chmod +x script.py
$ ./script.py