Aviso: ripgrep no puede hacer esto por sí solo. Pero puedes combinarlo con otras herramientas para conseguirlo.

El problema

Uso Obsidian con frontmatter (YAML) para llevar mi diario junto con algunas estadísticas. A veces se me olvida anotar todos los datos y quiero rellenar los huecos con la última medición. Ten paciencia: sé que no es correcto en sentido matemático, pero para mí es suficiente. Cuando mi nota se genera automáticamente, se usa un valor por defecto.

La solución

Suposición: existe una propiedad weight que por defecto vale 0.

ripgrep

Usé una combinación de ripgrep y sponge para lograrlo en fish:

for f in (rg -u -u -l -- 'weight: 0')
  cat $f | rg --passthrough -r 'weight: 1' -- 'weight: 0' | sponge $f
end

Solución alternativa (sin probar)

rg -l 'old' | xargs sed -i 's/old/new/g'