Зависимости по умолчанию для Пакет owncloud
в Debian включает привязку php, mysql и apache, но есть альтернативы для sqlite и других веб-серверов.
Если вы сделаете:
apt install owncloud php5-sqlite nginx apache2-
, то apt заметит, что вы устанавливаете пакет nginx
и php5-sqlite
, решите, что они удовлетворяют зависимостям owncloud.
, а не втягивают mysql или apache2.
К сожалению, что-то действительно втягивает apache, поэтому мы добавляем явную инструкцию для apt, что этого не следует делать, с apache2-
бит. Обратите внимание на тире («-») в конце; который сообщает apt удалить пакет или не устанавливать его, если он еще не установлен.
Кроме того, вы также можете сначала установить nginx
и php5-sqlite
, настроить их (при необходимости) и только , затем (после того, как вы поднял их) установите пакет owncloud
.
Это очень легко сделать с помощьюawk
:
$ awk 'NR==FNR{a[$1]=$2; next}{$1=a[$1]; print}' file2 file1
GCF_000014165.1_ASM1416v1_protein.faa WP_011558474.1 1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa WP_011558475.1 1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa WP_011558476.1 1156804 1157820 -3
GCF_000015405.1_ASM1540v1_protein.faa WP_011558474.1 1159543 1160595 42748
GCF_000015405.1_ASM1540v1_protein.faa WP_011558475.1 1160607 1161116 12
GCF_000015405.1_ASM1540v1_protein.faa WP_011558476.1 1161113 1162129 -3
GCF_000016005.1_ASM1600v1_protein.faa WP_011559727.1 2481079 2481633 8
GCF_000016005.1_ASM1600v1_protein.faa WP_011854835.1 1163068 1164120 42559
GCF_000016005.1_ASM1600v1_protein.faa WP_011854836.1 1164127 1164636 7
Или, поскольку это выглядит как вкладка -разделенного файла:
$ awk -vOFS="\t" 'NR==FNR{a[$1]=$2; next}{$1=a[$1]; print}' file2 file1
GCF_000014165.1_ASM1416v1_protein.faa WP_011558474.1 1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa WP_011558475.1 1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa WP_011558476.1 1156804 1157820 -3
GCF_000015405.1_ASM1540v1_protein.faa WP_011558474.1 1159543 1160595 42748
GCF_000015405.1_ASM1540v1_protein.faa WP_011558475.1 1160607 1161116 12
GCF_000015405.1_ASM1540v1_protein.faa WP_011558476.1 1161113 1162129 -3
GCF_000016005.1_ASM1600v1_protein.faa WP_011559727.1 2481079 2481633 8
GCF_000016005.1_ASM1600v1_protein.faa WP_011854835.1 1163068 1164120 42559
GCF_000016005.1_ASM1600v1_protein.faa WP_011854836.1 1164127 1164636 7
Это предполагает, что каждый идентификатор RefSeq(NC_*
)в file1
имеет соответствующую запись в file2
.
NR==FNR
:NR — номер текущей строки, FNR — номер строки текущего файла. Они будут идентичными только во время чтения первого файла (, здесь file2
). a[$1]=$2; next
:если это первый файл (см. выше ), сохранить 2-е поле в массиве, ключом которого является 1-е поле. Затем перейдите к строке next
. Это гарантирует, что следующий блок не будет выполнен для первого файла. {$1=a[$1]; print}
:теперь, во втором файле, установите 1-е поле на любое значение, которое было сохранено в массиве a
для 1-го поля (, поэтому,связанное значение изfile2
)и напечатайте результирующую строку. Протестировано с помощью приведенной ниже команды и работает нормально
for i in `awk '{print $1}' f2`; do k=`awk -v i="$i" '$1==i {print $2}' f2`;sed "/$i/s/$i/$k/g" f1 >f3;done
выход
for i in `awk '{print $1}' f2`; do k=`awk -v i="$i" '$1==i {print $2}' f2`;sed "/$i/s/$i/$k/g" f1 >f3;done
GCF_000014165.1_ASM1416v1_protein.faa WP_011558474.1 1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa WP_011558475.1 1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa WP_011558476.1 1156804 1157820 -3
GCF_000015405.1_ASM1540v1_protein.faa WP_011558474.1 1159543 1160595 42748
GCF_000015405.1_ASM1540v1_protein.faa WP_011558475.1 1160607 1161116 12
GCF_000015405.1_ASM1540v1_protein.faa WP_011558476.1 1161113 1162129 -3
GCF_000016005.1_ASM1600v1_protein.faa WP_011559727.1 2481079 2481633 8
GCF_000016005.1_ASM1600v1_protein.faa WP_011854835.1 1163068 1164120 42559
GCF_000016005.1_ASM1600v1_protein.faa WP_011854836.1 1164127 1164636 7
Нет необходимости в awk, если файлы отсортированы, вы можете использовать соединение с coreutils:
join -o '2.2 1.2 1.3 1.4 1.5' file1 file2
Выход:
GCF_000014165.1_ASM1416v1_protein.faa WP_011558474.1 1155234 1156286 44173
GCF_000014165.1_ASM1416v1_protein.faa WP_011558475.1 1156298 1156807 12
GCF_000014165.1_ASM1416v1_protein.faa WP_011558476.1 1156804 1157820 -3
GCF_000015405.1_ASM1540v1_protein.faa WP_011558474.1 1159543 1160595 42748
GCF_000015405.1_ASM1540v1_protein.faa WP_011558475.1 1160607 1161116 12
GCF_000015405.1_ASM1540v1_protein.faa WP_011558476.1 1161113 1162129 -3
GCF_000016005.1_ASM1600v1_protein.faa WP_011559727.1 2481079 2481633 8
GCF_000016005.1_ASM1600v1_protein.faa WP_011854835.1 1163068 1164120 42559
GCF_000016005.1_ASM1600v1_protein.faa WP_011854836.1 1164127 1164636 7
Если ваши файлы не отсортированы, вы можете либо сначала отсортировать их (sort file1 > file1.sorted; sort file2 > file2.sorted
), а затем использовать приведенную выше команду, либо, если ваша оболочка поддерживает конструкцию <()
(, bash поддерживает ), вы можете делать:
join -o '2.2 1.2 1.3 1.4 1.5' <(sort file1) <(sort file2)