Para filtros mais complexos como este, awk
pode fazer o trabalho:
awk '( /me|you/ ) || (/john/ && ! /doe/ )' /path/to/file
Eu gostaria de poder passar qualquer saída de linha de comando para um script bash ou algum programa de linha de comando que filtre o conteúdo dependendo de uma pesquisa booleana - expressões regulares não são necessárias (mas tudo bem se elas forem suportadas)
Por exemplo, se eu tivesse um arquivo assim:
hello there
me and you are going to the store
this is a file created by john doe and his friend jane
john is here
então, executar meu script fictício pode ser feito da seguinte forma:
$ cat file1.txt | filter "(me OR you) OR (john AND ! doe)"
me and you are going to the store
john is here
Eu provavelmente poderia remendar algo como um monte de grep
e grep -v
chamadas, mas me pergunto se estou faltando alguma maneira mais sucinta de fazer isso?
Tags grep text-processing awk