Eu tenho um arquivo de dados ( data.txt
) com ~ 320 linhas e ~ 1800 colunas (1,9 MB), e preciso extrair algumas colunas (para todas as linhas). O layout geral de data.txt
é o seguinte:
ID Adipocyte - breast, donor2.CNhs11969.11327-117E4 ....
HGNC:8888 0 ....
HGNC:9999 123.92 ....
HGNC:1000 9.31 ....
Eu tenho uma lista das colunas que preciso extrair (em um arquivo list.txt
), mas essa lista é composta apenas do identificador CNhsXXXXX no termo da coluna (ou seja, para o exemplo acima, a lista conteria apenas CNhs11969 , não o termo completo Adipócito - mama, doador2.CNhs11969.11327-117E4 ).
Eu usei o grep para uma lista de linhas antes, mas não para colunas. Eu dei uma olhada, mas não consegui encontrar uma maneira de usar várias colunas com vários termos. Eu sou muito novo no unix (sou biólogo, pouca experiência em computação), então não tenho certeza se o grep pode fazer isso.
Qualquer ajuda seria apreciada.
EDIT: Meu exemplo de saída seria apenas ~ 850 das ~ 1800 colunas (somente aquelas contendo os termos no meu arquivo list.txt
). Exemplo: Se minha lista continha apenas CNhs5006 e CNhs7021, eu desejaria apenas colunas contendo esses termos no cabeçalho. Exemplo do data.txt
:
ID XXXCNhs5006XXX XXXCNhs6025XXX XXXCNhs7021XXX XXXCNhs8095XXX
HGNC:1111 1.23 1.53 9.21 0
HGNC:2222 1.95 73.92 0 123.29
Exemplo da saída desejada:
ID XXXCNhs5006XXX XXXCNhs7021
HGNC:1111 1.23 9.21
HGNC:2222 1.95 0
Meu list.txt
é apenas uma lista simples de termos (1 coluna, ~ 850 linhas, cada linha contendo 1 termo de pesquisa). Exemplo:
CNhs1111
CNhs2222
CNhs3333
CNhs4444