pesquisa com e sem um padrão com ag

0

Com dois arquivos com

echo 'example.com/call_me?param' > file1.txt
echo 'example.com/call_me_maybe?param' >> file1.txt
echo 'example.com/call_me?' >> file1.txt
echo 'example.com/call_me?param' > file2.txt
echo 'example.com/call_me_maybe?' >> file2.txt

$ ag -v '\?param'
file2.txt
2:example.com/call_me_maybe?

file1.txt
3:example.com/call_me?

$ ag '\/call_me_maybe' -v '\?param'
ERR: Error stat()ing: \?param
ERR: Error opening directory \?param: No such file or directory

$ ag '\/call_me_maybe' -v '\?param' file1.txt
ERR: Error stat()ing: \?param
ERR: Error opening directory \?param: No such file or directory
file1.txt
1:example.com/call_me?param
3:example.com/call_me?

Eu gostaria de pesquisar por um termo e excluir o outro padrão. É possível em um comando?

Estou usando o ag porque ele está cavando em log.gz arquivos. Então eu posso usar zgrep ou ag -z .

    
por PockPock 17.01.2018 / 15:06

1 resposta

1

Eu não uso ag , mas de acordo com a página man, a linha de comando é:

ag [options] pattern [path ...]

Isso implica que apenas um padrão é permitido.

Assim como acontece com grep quando você deseja combinar uma pesquisa com uma pesquisa invertida (por exemplo, realizar uma pesquisa por a AND NOT b ), é possível enviar a saída em grep -v ... . por exemplo,

ag '\/call_me_maybe' | grep -v '\?param'
    
por 17.01.2018 / 15:31

Tags