Это очень хорошо объяснено в RFC4252 , включая сообщения, которые отправляются туда и обратно клиентом и сервером:
SSH_MSG_USERAUTH_REQUEST
содержит большой двоичный объект открытого ключа, который используется для сравнения с ключом, хранящимся в authorized_keys
SSH_MSG_USERAUTH_PK_OK
или ошибкой SSH_MSG_USERAUTH_REQUEST
снова содержит открытый ключ (, предполагая, что это снова большой двоичный объект )вместе с подписью над известными данными (, включая открытый ключ ). Первые два пункта не являются обязательными, и вы можете выполнить только последний (, но выяснение того, какой ключ использовать, экономит вычислительную мощность ).
$ awk '
NR==FNR {a[$1]++; a[$2]++; next};
!($2 in a)' fusions.head16.R2.fastq.tab test.head20.R2.fastq.tab
@10000000_0_0_0_0 rupesh TCCCTACTCACGTGGTGGACGCACAACCTAAGGTCAAGCTTATAGGTAAACACGCAGTGAAATATCCAGAAACGAAGCTATCACCCGGGTAGTGTCTTGG + =FGIIIFDCCDDDCAA5BBBBGIJIIGJIJJJJJJIIGGHHIIIJIJIIJJIEE8?DDECGGIEDDDDDDHHJJJJJJIGIIIJED?CB5@CFFHHHCFF
@5000345_0_3_0_0 ENSG00000178057 TCCCTACTCACGTGGTGGACGCACAACCTAAGGTCAAGCTTATAGGTAAACACGCAGTGAAATATCCAGAAACGAAGCTATCACCCGGGTAGTGTCTTGG + =FGIIIFDCCDDDCAA5BBBBGIJIIGJIJJJJJJIIGGHHIIIJIJIIJJIEE8?
Это было проще и легче, чем я сначала думал, если вы читаете файл исключений(fusions.head16.R2.fastq.tab
)перед файлом данных(test.head20.R2.fastq.tab
).
Это считывает первый файл и использует массив a
для хранения идентификаторов, найденных в полях $1
и $2
.
Затем для каждой строки второго файла (и последующих файлов, если они есть ), если поля $2 нет в массиве a
, печатается строка.
Это решение работает, но требует нескольких шагов и промежуточного файла.
Шаг 1 :Получите список идентификаторов, для которых вы хотите удалить запись из файла 1:
awk -F' ' '{print $1 "\n" $2}' fusions.head16.R2.fastq.tab > remove_list
Шаг 2 :Извлеките записи из файла 1, которые не содержат идентификаторы из списка удаления _.
awk -F' ' 'NR==FNR{a[$1];next} !($2 in a)' remove_list test.head20.R.fastq.tab
Выход:
@10000000_0_0_0_0 rupesh TCCCTACTCACGTGGTGGACGCACAACCTAAGGTCAAGCTTATAGGTAAACACGCAGTGAAATATCCAGAAACGAAGCTATCACCCGGGTAGTGTCTTGG + =FGIIIFDCCDDDCAA5BBBBGIJIIGJIJJJJJJIIGGHHIIIJIJIIJJIEE8?DDECGGIEDDDDDDHHJJJJJJIGIIIJED?CB5@CFFHHHCFF
@5000345_0_3_0_0 ENSG00000178057 TCCCTACTCACGTGGTGGACGCACAACCTAAGGTCAAGCTTATAGGTAAACACGCAGTGAAATATCCAGAAACGAAGCTATCACCCGGGTAGTGTCTTGG + =FGIIIFDCCDDDCAA5BBBBGIJIIGJIJJJJJJIIGGHHIIIJIJIIJJIEE8?