Encontre e imprima a primeira palavra com o padrão correspondente

0

Eu tenho um arquivo de texto no qual existem duas colunas:

Name Age

Eu quero pesquisar uma parte de Name neste arquivo e ao encontrar a primeira correspondência, quero imprimir todo o Name Exemplo:

Name                   Age
Ashok Kumar(father)    32
Deepak khan(son)      19
Nirmal khan(son)       21

I want to search for(son) and want to return Deepak khan

Eu tentei

grep -r 'John' myfile
    
por Aquarius24 13.09.2015 / 23:36

1 resposta

1

Você pode fazer isso usando grep com PCRE ( -P ):

grep -Po '.*(?=\(son\))' file.txt 
  • (?=\(son\)) é o padrão de lookahead positivo de largura zero garantindo que (son) siga após a correspondência, ou seja, somente ( -o ) os nomes seguidos por (son) serão mostrados na saída

Exemplo:

$ cat file.txt 
Name                   Age
Ashok Kumar(father)    32
Deepak khan(son)      19
Nirmal khan(son)       21

$ grep -Po '.*(?=\(son\))' file.txt 
Deepak khan
Nirmal khan
    
por heemayl 13.09.2015 / 23:51