Como sobre OR os dois padrões?
$ grep '^#[^#]\|^chr1' file
#Important header
chr1 content a
Como alternativa, a forma -e
é especificada por POSIX )
$ grep -e '^#[^#]' -e '^chr1' file
#Important header
chr1 content a
Eu tenho um arquivo parecido com:
##Comment A
##Comment B
#Important header
chr1 content a
chr2 content b
chrX content x
Eu gostaria de extrair a linha 3 e 4 para um novo arquivo, que começa com um # (não ##) ou "chr1".
#Important header
chr1 content a
Eu tentei fazer
grep "^[^##]"
mas isso excluirá a linha com apenas um # nela também. Eu acho que sempre posso fazer isso em duas etapas, mas gostaria de receber melhores soluções! Muito obrigado.
Como sobre OR os dois padrões?
$ grep '^#[^#]\|^chr1' file
#Important header
chr1 content a
Como alternativa, a forma -e
é especificada por POSIX )
$ grep -e '^#[^#]' -e '^chr1' file
#Important header
chr1 content a
Sempre há outra solução. Usando awk
, você pode fazer isso seguindo o script:
awk '{if( ($0~/^#/ && $0!~/^##/) || $0~/^chr1/){print $0}}' file
Quando a primeira parte parece se a linha começar com #
, mas não ##
e segunda parte começa a linha se iniciar com chr1
, em seguida, imprimir o resultado fora.
Tags regular-expression