У меня есть два файла:Сравнить два файла, поле заголовка печати, если
Файл 1 (первая строка является заголовком)
gene h1 h2 h3 h4 h5 h6 h7 h8...
gene_name1 e1 e2 e3 e4 e5 e6 e7 e8...
gene_name2 ...
gene_name3 ...
...
Файл 2 (без заголовка)
gene_name1 mean1 mean2 sd1 sd2
gene_name2 ...
gene_name3 ...
I хотел бы вывести поле заголовка, если любое из полей e1, e2, e3 ... в File1 является> mean1 + 3 (sd1) из File2 для соответствующего имени гены. Пример: если e1> mean1 + 3 (SD1) TRUE, то для печати:
gene_name1 h1
Если е2> mean1 + 3 (SD1) TRUE, а затем добавить h2 к линии:
gene_name1 h1 h2
Сделайте это для каждой строки, если $ 1 соответствует обоим файлам. Если в файле 1 нет поля, выполняющего условие, оставьте его пустым.
Желаемый результат:
gene_name1 h1 h2
gene_name2
gene_name3 h5 h6 h8
gene_name4 h1 h5
gene_name5 h3
gene_name6
gene_name7 h2 h5 h7 h8
...
Я думал, в чем-то вроде:
awk 'FNR==NR{a[$1]=$2+3*$4;next} $1 in a
... а затем «цикл» для каждого поля в файле 1. Но я не знаю, как сохранить заголовки заголовков.
Ваше описание не 100% ясно для меня, я добавил ответ на то, что я верю, что вы имеете в виду. Если это неверно, обновите вопрос с ожидаемым результатом с моего ввода. Всегда полезно размещать репрезентативный ввод и ожидаемый результат по типам вопросов. –
Извините, что для меня не было так ясно, я обновил вопрос –
См. Edit, теперь должен сделать трюк. –