Объединение файлов в каталог по заголовкам и исключение общего содержимого

поэтому я нашел здесь вопрос, который противоречит тому, что я хотел бы сделать здесь: объединить несколько файлов с одним заголовком .

Я пытаюсь объединить или объединить 2 файла в пределах каталога из сотни файлов, которые имеют файл-партнер с той же подстрокой, в один файл на основе символа '>' в заголовке. Внутри каждого файла есть тысячи заголовков, и в отличие от вопроса, заданного в ссылке, которую я прикрепляю, содержимое, отличное от заголовка, является таким же, поэтому я не хочу ничего менять, кроме каждой строки, начинающейся с «>».

По сути, я хотел бы объединить файл1 в файл2 с общим символом '>' и оставить содержимое файла 1 по порядку.

File1 > MGBNCNOSNC_142 9u2o4840204a9 > MGBNCNOSNC_143 AOISCJNWDCSNDCCW > MGBNCNOSNC_144 AOISCJ40204DZZW 

 File2 >King_Henry >Queen_jerry >Jack_jill 

 Output > MGBNCNOSCNC_142 > King_henry 9u2o4840204a9 > MGBNCNOSCNC_143 > Queen_jerry AOISCJNWDC > MGBNCNOSNC_144 > Jack_jill gefSCJ40204DZZW 

Спасибо за любую помощь и дайте мне знать, если я могу быть яснее!

Вы можете прочитать строки File2 в индексированном массиве awk, а затем добавить их по очереди в соответствующие строки File

 awk ' NR==FNR {a[i++]=$0; next} /^>/ {$0 = $0" "a[j++];} {print} ' File2 File1 

Кроме того, если у вас есть GNU sed (с расширением R ), вы можете попробовать

 sed '/^>/ R File2' File1 | sed '/^>/ {N;s/\n/ /}' 

Если ваш File1 имеет ровно одну дополнительную строку для каждой строки, которая должна быть сопоставлена, другой вариант может состоять в том, чтобы удвоить пробел File2 а затем paste файлы вместе

 sed 'G' File2 | paste -d ' ' File1 - 

хотя это приведет к дополнительному конечному пространству в несовпадающих линиях; если это нежелательно, вы можете вставить пробел в начале каждой строки File2 и paste их без разделителя

 sed 's/^/ /; G' File2 | paste -d '' File1 -