Как объединить два файла gz в новый выходной файл с определенным именем

[...] Но, похоже, это не имеет смысла, поскольку мне всегда нужно вводить sudo, управляю ли я пакетами, редактирую конфигурацию файлы, установка программы из исходников, или что у вас есть. [...]

Подразумеваемое прилагательное, относящееся ко всему этому, заключается в том, что они являются общесистемными или глобальными изменениями. Вы должны учитывать происхождение Unix как многопользовательской системы 1 , где несколько пользователей будут использовать одну и ту же установку удаленно. Для одного пользователя-непрофессионала было бы бессмысленно разрешать изменять глобальные настройки для всех пользователей. Это был системный администратор, root, привилегии и ответственность.

В многопользовательской настройке у вас есть предустановленное программное обеспечение и их общесистемная конфигурация в каталогах / usr и / etc соответственно. Прикосновение к этим местоположениям потребует прав суперпользователя. Но поскольку программное обеспечение Unix написано с учетом многопользовательского режима, вы можете скомпилировать и установить программное обеспечение в $ HOME каталог 2 и получить собственные файлы конфигурации у себя дома, где вы можете свободно редактировать файлы, не будучи суперпользователем.

Помимо установки собственного программного обеспечения дома, большинство общесистемных программ считывают пользовательскую конфигурацию из $ HOME сразу после первого чтения конфигурации из / и т. Д. . Это позволяет вам настроить большую часть чего угодно, даже не используя root .

На домашнем ПК в одной основной пользовательской настройке вы можете использовать sudo и получить root-права на своем пути к тому, что вам нравится. Но обычно не касаются конфигурации приложения в / etc , а вместо этого всегда предоставляют конфигурацию для конкретного пользователя дома. Таким образом вы можете разрешить диспетчеру пакетов сбрасывать общесистемные конфигурации при обновлениях. Установка нового программного обеспечения в масштабе всей системы вполне нормальна в однопользовательской настройке; Пакеты дистрибутива не предполагают альтернатив, так что это простой выход.

Я позволю своему диспетчеру пакетов устанавливать материалы глобально, но все скомпилированные из исходных кодов и самодельные вещи я оставляю в $ HOME . И мне не нужно использовать sudo для всего этого.

Если у вас есть файлы данных, хранилище за пределами вашего $ HOME , вы можете chown или chgrp каталоги на свое имя, чтобы вы можете получить доступ к файлам без sudo .

[1] (немного иронично, поскольку Unix задумывался как «однопользовательская» версия операционной системы Multics)

[2] (если система позволяет это, не монтируя домашние разделы как noexec)

0
25.04.2018, 18:01
1 ответ

Во-первых, 22[71-94]*R1_001.fastq.gzне расширяется до того, что вы думаете, что расширяется до

Это эффективно22[1-9]*R1_001.fastq.gz-в этом, [71 -94] представляет собой группу символов, где «7 ИЛИ от 1 до 9 ИЛИ 4» упрощается до «от 1 до 9».

22{71..94}*R1_001.fastq.gz, скорее всего, это расширение, которое вы искали, но ваш цикл будет выполнять zcatодин раз для каждого найденного файла, а не объединять вещи вместе. По сути, каждый R1файл последовательно получаетzcat-ed в один и тот же выходной файл, перезаписывая предыдущие записи.

Я считаю, что это то, что вы на самом деле ищете, учитывая предположение (см. ниже):

for num in {71..94}; do zcat 22"$num"*R1_{L001,L002}.fastq.gz > "22${num}_merged_R1_001.fastq" ; done

Предположение:Вы хотите, чтобы результат был распакован, поэтому я удалил .gzиз результирующих файлов (, как указал Патрик)
Если это не так, просто измените zcatна catи снова добавьте .gzк результирующему файлу.

0
28.01.2020, 04:24

Теги

Похожие вопросы