Это очень легко сделать с помощью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
)и напечатайте результирующую строку. Для поддержки камеры на этом устройстве вам потребуется использовать libcamera.
Однако вам, вероятно, также потребуются специальные обновления драйверов датчиков в вашем ядре и обновления моста CIO2, которые были разработаны как часть поддержки ряда устройств Microsoft Surface.
См.https://github.com/linux-surface/linux-surface/wiki/Camera-Supportа такжеhttps://github.com/linux-surface/linux-surface/issues/91