Algumas outras maneiras de ver isso.
Método 1
Como você só está interessado em linhas se elas tiverem mais de dois caracteres separados por vírgulas, você poderá usar apenas grep
para vírgulas:
$ grep "," sample.txt
chr2 3323 C T,A
chr3 5251 C T,G
chr3 9990 G C,T
Método # 2
Você pode usar o recurso PCRE de grep
. É aqui que grep
pode usar o mecanismo de expressão regular do Perl para fazer a correspondência. É muito poderoso e permite fazer muito do que você pode fazer com o Perl em grep
.
vagamente definido
$ grep -P "(\w,)+" sample.txt
estritamente definido
$ grep -P '\w+\d\s+\d+\s+\w\s+(\w,)+' sample.txt
Método 3
Usando awk
. Isso novamente está aproveitando o fato de que apenas as linhas com uma vírgula ( ,
) são de interesse, por isso apenas as encontra e as imprime:
vagamente definido
$ awk '/,/{print}' sample.txt
mais estritamente definido
$ awk '/([[:alpha:]])+,[[:alpha:]]/{print}' sample.txt
ainda mais estritamente definido
$ awk '$4 ~ /([[:alpha:]])+,[[:alpha:]]/{print}' sample.txt
Este analisa o conteúdo da quarta coluna e verifica se é uma letra seguida por uma vírgula, seguida por outra letra.
ainda mais estritamente definido
$ awk '$4 ~ /([GATC])+,[GATC]/{print}' sample.txt
Isto procura apenas um G, A, T ou C seguido por uma vírgula, seguido por outro G, A, T ou C.