Vários termos de pesquisa com o comando de pesquisa da coluna awk

0

Em um comando awk , como abaixo, que pesquisa na segunda coluna a palavra-chave mouse , como posso adicionar outro termo de pesquisa para realizar uma pesquisa como " mouse e keyboard "ou" mouse ou keyboard "?

Eu quero evitar a execução de vários comandos.

awk -F'\t' '$2~/mouse/' allcombined.txt
    
por Tarun M 09.08.2018 / 21:59

3 respostas

1

Para adicionar uma condição e , use && aqui:

awk -F'\t' '$2~/mouse/ && $3 ~ /keyboard/' allcombined.txt
                       ^
                        \---

(onde eu arbitrariamente escolhi exigir que o campo 3 correspondesse ao "teclado").

Para adicionar uma condição ou , use || :

awk  -F'\t' '$2~/mouse/ || $2 ~ /keyboard/' allcombined.txt

(aqui, o campo 2 pode corresponder a "mouse" ou "teclado").

Você precisará usar parênteses quando sua lógica ultrapassar três elementos:

awk  -F'\t' '($2~/mouse/ || $2 ~ /keyboard/) && $4 ~ /CIO/' allcombined.txt
    
por 09.08.2018 / 22:22
1

No seu código awk , faça o teste dizer

$2 ~ /mouse/ || $2 ~ /keyboard/

ou altere || para && para "e".

Observe que isso faria correspondências de expressões regulares ( /mouse/ corresponderia à string a mouse called Henry ). Para fazer uma comparação exata de string, use, por exemplo, $2 == "mouse" etc.

    
por 09.08.2018 / 22:22
0
$ awk  -F'\t' '$2~/(mouse|keyboard)/ && $3~/(x|y)/'
    
por 10.08.2018 / 16:23

Tags