Isso fornecerá todas as linhas cuja 9ª coluna corresponde a MEF2
:
awk -F"\t" '$9~/MEF2/' file > output
Supondo que seu arquivo seja sempre delimitado por tabulação, isso funcionará e você poderá ficar em segurança. Essa é a margem de erro mais próxima de 0 que você conseguirá.
Se, no entanto, você tentou importar algo como R (presumivelmente usando read.table("file",sep="\t")
) e isso não funcionou, você pode ter algumas linhas com diferentes números de campos (veja no final como verificar isso). Nesse caso, supondo que você esteja sempre interessado no último campo, use $(NF)
in awk
para imprimir o último campo, independentemente de quantos campos houver:
awk -F"\t" '$(NF)~/MEF2/' file > output
Se ainda sentir necessidade de verificar, você pode simplesmente extrair todas as linhas que correspondem a MEF2
, independentemente de onde a correspondência é, e comparar os resultados:
grep MEF2 file > output2
Depois de ter isso, você pode usar wc
para verificar se eles têm o mesmo número de linhas. Se não, descubra onde eles diferem executando
grep -vFf output output2
Esse comando irá imprimir quaisquer linhas na saída2 que não estejam presentes na saída1. Se houver algum, provavelmente eles terão MEF2
em algum lugar da linha, mas não no nono campo. Se estiver no 9º campo, você sabe que seu arquivo não está separado por tabulações e há algo errado com seus dados.
O awk
acima é provavelmente a solução mais simples, mas aqui estão alguns outros que fazem a mesma coisa:
-
Perl
perl -F"\t" -lane '$F[8]=~/MEF2/ && print' file
-
sed
(este pode coincidir com linhas erradas se você tiver mais de 9 campos)sed -n '/\t.*\t.*\t.*\t.*\t.*\t.*\t.*\t.*MEF2.*/p' file
-
grep
grep -P '^.+?\t.*\t.*\t.*\t.*\t.*\t.*\t.*\t.*MEF2.*' file
Se tudo isso não produzir a mesma saída, você sabe que há um problema no seu arquivo. Só mais uma coisa que você pode verificar é certificar-se de que todas as suas linhas tenham 9 campos. Se não, você sabe que há um problema:
awk -F"\t" 'NF!=9' file
O texto acima imprimirá todas as linhas que não tenham exatamente 9 campos separados por tabulações. Se houver saída, as linhas impressas serão problemáticas.