print se a próxima linha contiver

1

Eu tenho um arquivo de texto do qual 0 hits encontrados são necessários. Eu estou usando o Linux Suse. Qualquer comando usando awk ou sed será apreciado

# BLASTP 2.2.31+
# Query: ABO10498.2 DNA replication initiator protein [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# Fields: query id, subject id, evalue, % identity, % query coverage per subject
# 1 hits found
# BLASTP 2.2.31+
# Query: ABO10538.2 hypothetical protein A1S_0043 [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# 0 hits found
# Query: ABO10591.2 putative acetyl-coA synthetase/AMP-(fatty) acid ligase [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# Fields: query id, subject id, evalue, % identity, % query coverage per subject
# 23 hits found
# BLASTP 2.2.31+
# Query: ABO10598.2 eR transcriptional regulator [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# 0 hits found

resultado desejado:

# BLASTP 2.2.31+
# Query: ABO10538.2 hypothetical protein A1S_0043 [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# 0 hits found
# BLASTP 2.2.31+
# Query: ABO10598.2 eR transcriptional regulator [Acinetobacter baumannii ATCC 17978]
# Database: uniprot-reviewed%3Ayes+AND+proteome%3Aup000005640.fasta
# 0 hits found
    
por Rhea 17.05.2017 / 13:53

1 resposta

7

Se o padrão permanece o mesmo, você pode usar

grep -B 3 '# 0 hits found'

Isso imprimirá todas as linhas contendo # 0 hits found e as três linhas antes da partida.

Os diferentes hits são obtidos por uma linha que continua -- . Então você pode querer adicionar | grep -v '^--' ao comando.

    
por 17.05.2017 / 14:03