Como extrair linhas começando com uma certa letra?

1

Eu tenho um arquivo de texto com muitas linhas, Exemplo de linhas:

AABBA, 10050, Tom marc Peter , POR
BBBAC, 10051, Eva braun, AUS
CCAHA, 10052, Jon murry , UDD
GGHAN, 10053, Taler yon, AGG
IIUSA, 10054, Raff paleen , EUS
UUGAS, 10055, Bara enty, ESP

Gostaria de extrair linhas com uma pessoa cujo sobrenome comece com um P.

saída:

AABBA, 10050, Tom marc peter , POR
IIUSA, 10054, Raff paleen , EUS
    
por Marc Jasson 06.12.2015 / 16:32

3 respostas

1

awk -F, '{ n=split($3,a," "); if(tolower(substr(a[n],0,1))=="p") print $0; }'
    
por 06.12.2015 / 16:39
0

Confiando no número de vírgulas e trabalhando de volta a uma palavra que começa com p / P, você pode fazer isso com "qualquer" programa de expressão regular. Por exemplo

grep -E '^([^,]+,){2,2}[^,]+[[:space:]][pP][^[:space:],]+[[:space:]]*,' mytextfile

AABBA, 10050, Tom marc Peter , POR
IIUSA, 10054, Raff paleen , EUS
    
por 06.12.2015 / 16:39
0
grep -ie' p[^, ]* *,[^,]*$'  \
<<""
AABBA, 10050, Tom marc Peter , POR
BBBAC, 10051, Eva braun, AUS
CCAHA, 10052, Jon murry , UDD
GGHAN, 10053, Taler yon, AGG
IIUSA, 10054, Raff paleen , EUS
UUGAS, 10055, Bara enty, ESP
AABBA, 10050, Tom marc Peter , POR
IIUSA, 10054, Raff paleen , EUS
    
por 06.12.2015 / 22:52