Вот небольшое изменение в ответе jhnc с использованием подстановки процесса для подачи в цикл while
, который создает объединенные файлы gzip, например,
#!/bin/bash
suffix=R.fastq.gz
while read -r prefix; do
cat "${prefix}_"* > "$prefix.$suffix"
done < <(for i in *.gz; do echo ${i%%_*}; done | sort -u)
Он использует цикл for
для выделения и сбора уникальных префиксов для каждого существующего файла gzip в текущем каталоге, а затем перенаправляет этот уникальный список в качестве входных данных для цикла while
.
( примечание: подстановка процесса , например, <(process)
- это bashism , доступный в bash, но не в оболочке POSIX. При перенаправлении процесса замена для оплаты цикла while между перенаправлением и заменой процесса должен быть пробел, например < <(process)
)