Como obter o número da linha dessas linhas que possuem um caractere específico?

0

Eu tenho um arquivo de preenchimento, assim:

Pop_ID
good
HA_27
HA_14
HA_1
HA_20
HA_17
HA_26
HA_22
HA_7
HA_7
HA_16
HA_14
HA_2
HA_1
HA_11
HA_3
HA_7
HA_25
HA_23

Eu quero imprimir o número da linha dessas linhas que tem um caractere específico. Por exemplo, " HA_1 ", onde as linhas 5 e 15 têm esse caractere.

5
15
    
por Anna1364 06.10.2017 / 19:55

3 respostas

2

com awk .

awk '/\<HA_1\>/{print NR}' infile

com sed .

sed -n '/\<HA_1\>/=' infile
    
por 06.10.2017 / 20:00
2

Usando sed :

$ sed -n '/^HA_1$/=' file
5
15

A expressão sed /^HA_1$/= aplicará o comando = a todas as linhas que correspondam à expressão regular ^HA_1$ . O comando = emitirá o número da linha atual, e a expressão regular corresponderá a qualquer linha cujo único conteúdo seja HA_1 .

    
por 06.10.2017 / 20:03
1
Abordagem

grep + cut :

grep -wn 'HA_1' file | cut -d':' -f1

A saída:

5
15
    
por 06.10.2017 / 20:01