¿Cómo get git diff dentro de una expresión regular?

Me gustaría que git diff compare solo dentro de una expresión regular. Por ejemplo:

Contenido del file en la Revisión A:

 A 0 1 A 1 1 2 A 0 1 2 3 A 1 1 2 3 4 

Contenido del file en la Revisión B:

 B 0 1 B 0 1 2 B 1 1 2 4 B 1 1 2 4 8 16 

Es posible que desee ignorar la primera palabra (es decir, 'A' o 'B'), hacer coincidir las siguientes dos palabras e ignorar el rest de la línea. En lo anterior, solo se deben informar las líneas segunda y tercera.

Cómo grep el git diff? indica que git -G solía hacer lo que yo quería, pero su comportamiento ha cambiado. ¿Hay alguna manera de hacer que esto suceda (excepto hacer algo como diff <(git show ... | awk ...) <(git show ... | awk ...) )?

diff le permite cambiar el formatting de la diferencia. Desea cambiar el contenido y de una manera especializada. Usar diff , git show y awk (o similar) para lograr esto es correcto. Sigue la filosofía de Unix de canalizar text entre herramientas pequeñas.

Lo que sugeriría es configurar esto como un alias de command git o escribir un script de shell como ~/bin/git-column-diff . Entonces puedes git column-diff file1 file2 .

Podría abusar de la característica textconv para hacer el filtrado por usted, pero eso requeriría que los files tengan extensiones especiales e interferiría con la diferenciación de los files todo el time, y siempre tendría que querer diferir las mismas columnas.

Puede escribir un progtwig que haga su diff personalizado y establecer GIT_EXTERNAL_DIFF para apuntar a este progtwig.