Большое спасибо за любые советы и отзывы по этому поводу. Это моя ситуация:
У меня есть каталог с несколькими сотнями файлов, которые начинаются с foo * и заканчиваются * .txt. Однако между началом и концом они различаются уникальным идентификатором Group #. #, И файлы выглядят так:
foo.Group1.1.txt
foo.Group1.2.txt
foo.Group1.4.txt
foo.Group2.45.txt
.
.
.
foo.Group16.9.txt
Файлы начинаются с Group1 и заканчиваются группой 16. Это простые текстовые файлы с одним столбцом, каждый файл состоит из нескольких тысяч строк. Каждая строка - это номер.
Я хочу сделать серию конкатенаций с этими файлами, в которой я объединяю все файлы, кроме этих, с Group1, а затем со всеми файлами, кроме Group1 и Group2, а затем со всеми файлами, кроме Group1, Group2 и Group3 и так далее, пока я не буду осталось только последняя группа: Group16
Для этого я использую расширенное выражение подстановки bash с синтаксисом отрицания для объединения всех файлов, кроме тех, которые имеют Group1 в качестве своего идентификатора.
Я делаю каталог jacks и выводю объединенный файл в текстовый файл в этом подкаталоге:
cat !(*Group1.*) > jacks/jackknife1.freqs.txt
Затем я могу продолжить использование этой команды, но добавив Group2 и Group3 для последующих конкатенаций.
cat !(*Group1.*|*Group2.*) > jacks/jackknife2.freqs.txt
cat !(*Group1.*|*Group2.*|*Group3.*) > jacks/jackknife3.freqs.txt
Технически это работает. И 16 групп не так уж и страшно, чтобы сделать это вручную. Но мне интересно, есть ли способ, возможно, используя циклы или сценарии bash, чтобы автоматизировать этот процесс и ускорить его?
Буду признателен за любые советы или подсказки по этому вопросу!
большое спасибо, Даниэла