сравнить столбцы из двух разных файлов и НАПЕЧАТАТЬ ЗАПИСИ ИЗ ПЕРВОГО ФАЙЛА те, которые НЕ совпадают из второго файла

Это очень хорошо объяснено в RFC4252 , включая сообщения, которые отправляются туда и обратно клиентом и сервером:

  • Первое сообщение SSH_MSG_USERAUTH_REQUESTсодержит большой двоичный объект открытого ключа, который используется для сравнения с ключом, хранящимся в authorized_keys
  • .
  • Сервер отвечает SSH_MSG_USERAUTH_PK_OKили ошибкой
  • Второй SSH_MSG_USERAUTH_REQUESTснова содержит открытый ключ (, предполагая, что это снова большой двоичный объект )вместе с подписью над известными данными (, включая открытый ключ ).

Первые два пункта не являются обязательными, и вы можете выполнить только последний (, но выяснение того, какой ключ использовать, экономит вычислительную мощность ).

2
28.08.2019, 22:26
2 ответа
$ 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, печатается строка.

0
27.01.2020, 22:24

Это решение работает, но требует нескольких шагов и промежуточного файла.

Шаг 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?
0
09.09.2021, 00:16

Теги

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