Открыть порты для интерфейса без добавления интерфейса в зону?

Оболочка на самом деле не подходит для такого типа синтаксического анализа. Вы можете видеть в своем собственном коде, что вы читаете весь каждый файл один раз для каждого имени гена, считанного из файла gene.txt.

Следующая одиночная команда awkсделает то же самое быстрее.

awk -F '>' '
    FNR == NR           { genes[$1]; next }
    /^>/ && $2 in genes { if (out != "") close(out);
                          out = $2 ".fa"
                          split(FILENAME, a, "_")
                          $0 = ">" a[1] "_" $2 }
    out != ""           { print >>out }' genes.txt *_ref.fasta

Это сначала читает файл genes.txtи создает из него ассоциативный массив с именем genesс именами генов в качестве ключей.

Когда дело доходит до файлов Fasta (, код предполагает, что все они называются примерно так XXX_ref.fasta), когда мы читаем заголовок Fasta, а ген в заголовке является ключом в нашем genesсписке, затем мы создаем выходное имя файла из имени гена как genename.faи переписываем заголовок, чтобы включить часть текущего имени файла до подчеркивания.

Если исходным заголовком в XXX_ref.fastaявляется

>genename

тогда это будет преобразовано в

>XXX_genename

Последняя часть скрипта awkотправляет все строки в соответствующий выходной файл.

Тестирование с предоставленными вами данными приводит к созданию трех файлов:

$ ls *.fa
FBgn0070974.fa FBgn0076379.fa FBgn0080937.fa

$ cat FBgn0076379.fa
>CR1_FBgn0076379
ATGCTGCGCACCCTTTTCGCCGTGCGTGGTCAGTGCCAGCAGCTGCTGAGGAGAACATTCACCCCCCATTGCAGTGGCCAACGA
0
12.06.2021, 08:49
1 ответ

Firewalld — это брандмауэр на основе зоны -. Все интерфейсы являются частью некоторой зоны. Если это не указано явно, то интерфейс добавляется в зону по умолчанию. Первоначально это «общедоступная» зона, которая разрешает только избранные входящие соединения.

Из документации по зоне по умолчанию .

The default zone is the zone that is used for everything that is not explicitly bound/assigned to another zone. That means that if there is no zone assigned to a connection, interface or source, only the default zone is used.

Вы можете изменить зону по умолчанию или добавить интерфейс в определенную зону. Вы также можете определить свои собственные зоны. Для этих задач см. документацию RHEL 8:Работа с зонами firewalld

0
28.07.2021, 11:25

Теги

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