Mantenha a linha que contém X dentro dos dois primeiros campos

1

Eu tenho um .txt convertido de .csv que se parece com isso

Smith","example","example","example","example"
example","Smith","example","example","example"
example","Smith","example","Smith","example"
example","example","example","Smith","example"
John","example","example","example","example"
example","example","example","John","example"

Quero manter apenas as linhas que contêm as palavras Smith ou John , mas elas precisam estar nos dois primeiros campos

O resultado deve ser:

Smith","example","example","example","example"
example","Smith","example","example","example"
example","Smith","example","Smith","example"
John","example","example","example","example"

Os dois primeiros campos podem não ser exatamente John ou Smith , eles poderiam ser Johnson , por exemplo, eu ainda gostaria de manter isso.

Se os dois primeiros campos não contiverem John ou Smith, essa linha deverá ser removida. Se o primeiro ou o segundo campo os contiver, a linha deve ser mantida, não importa o que aconteça (se a linha inteira tiver "John", por exemplo)

    
por Teddy291 17.06.2015 / 14:23

2 respostas

3
grep -E '^([^,]*,")?(Smith|John)'  <infile

... vai imprimir ...

Smith","example","example","example","example"
example","Smith","example","example","example"
example","Smith","example","Smith","example"
John","example","example","example","example"
    
por 17.06.2015 / 14:35
2

Usando awk :

< inputfile awk -F, '$1$2~/Smith|John/'

Saída:

~/tmp$ cat inputfile
Smith","example","example","example","example"
example","Smith","example","example","example"
example","Smith","example","Smith","example"
example","example","example","Smith","example"
John","example","example","example","example"
example","example","example","John","example"
~/tmp$ < inputfile awk 'BEGIN {FS=","} $1~/Smith|John/||$2~/Smith|John/'
Smith","example","example","example","example"
example","Smith","example","example","example"
example","Smith","example","Smith","example"
John","example","example","example","example"
    
por 17.06.2015 / 14:50