Спасибо Ульриху Шварцу и hargut за то, что указали мне правильное направление. На самом деле это было логическое значение. Я включил httpd _enable _cgi, как было предложено, и это все равно не сработало. Затем я просмотрел список логических значений, используя
sudo getsebool -a | grep httpd
Так я узнал, что существует логическое значение с именем
httpd_can_network_connect_db
и что он был выключен.
Я включил его с помощью
sudo setsebool httpd_can_network_connect_db=1
Если кто-то использует MySql и выполняет миграцию с Debian на систему с повышенной безопасностью, это обязательное условие. Так много нужно узнать о SELinux. Еще раз спасибо.
Это похоже на задачу для awk
. Вы можете попробовать:
awk '{if ($4); print $4 $7}' filename.tsv
После полезного предложения из комментариев:
awk 'BEGIN { FS = "\t" } ; $4 != "" { print $4 "\t" $7}'
Непонятно, какое у вас требование. Предполагая, что, исключая первую строку, это только значения четвертого столбца (, помеченного как «ген» ), значение которого в шестом столбце (, помеченного как «продукт» ), отличается от «гипотетического белка».
grep -v "hypothetical protein" < <(tail -n +2 file.tsv) | cut -f4 -d$'\t'
Пояснение
tail -n +2 file.tsv
исключает первую строку ("locus _tag", "type" и т. д.)
grep -v "hypothetical protein"
исключает все строки, содержащие строку «гипотетический белок»
cut -f4 -d$'\t'
печатает четвертый столбец.
Попробуйте вот этот -вкладыш:
cut -f4 in.tsv | tail -n +2 | grep -P '\S'
Детали:cut -f4 in.tsv
:вывести 4-й столбец с разделителями TAB -входного файла in.tsv
. tail -n +2
:удалите первую строку (заголовка ). grep -P '\S'
:сохранить только те строки, которые содержат не -пробельные символы, то есть удалить пустые строки. -P
говорит grep
использовать регулярные выражения Perl.
Если вам нужны только уникальные имена генов, добавьте sort -u
вот так:
cut -f4 in.tsv | tail -n +2 | grep -P '\S' | sort -u
Использование awk:
awk -F'\t' '$4 != "" {arr[$4] = 1} END {for (idx in arr) print idx}' file.tsv
-F'\t'
:Разделить на таб. $4 != ""
:Если 4-е поле не пусто… {arr[$4] = 1}
:…используйте его как индекс в назначении массива -. 1
), является произвольным, 0
или "blergh"
также подойдут. END
:Когда все строки прочитаны… {for (idx in arr) print idx}
:…распечатать все индексы.