Eu não acho que o que eu estava tentando fazer é possível se eu encadear os comandos 2 grep
(já que as linhas de contexto são relativas a cada comando individual grep
).
Ocorreu-me que um lookahead negativo pode ser o que eu quero. Então tudo pode ser feito com um único comando grep
.
Para minha surpresa, parece que o GNU grep
realmente tem suporte para regex lookbehind / lookahead - mas apenas se você usar a opção --perl-regex
.
Aqui está um comando grep
que me fornece o que eu estava procurando:
⟫ grep --perl-regexp 'created_at(?!(.*precision:))' schema.rb -B3
create_table "things", id: :serial, force: :cascade do |t|
t.string "other_column"
# ...
t.datetime "created_at"