online lentes eyewear diff

lentes - diff php



¿Cómo puedo diferenciar 2 archivos mientras ignoro los espacios en blanco iniciales? (3)

Si uno está usando pestañas incorrectamente, puede arreglar eso

expand bad_file

Tengo 2 archivos fuente, son versiones diferentes de la misma cosa. Sin embargo, uno ha pasado por un editor diferente que realizó cambios de sangría, por lo que todas las líneas se muestran diferentes en diff.

¿Hay un comando de diferencia o un filtro que pueda usar para diferenciar de modo que la salida solo sean líneas que sean diferentes después de ignorar los espacios / tabulaciones iniciales?


diff tiene algunas opciones que pueden ser útiles para usted:

-E, --ignore-tab-expansion ignore changes due to tab expansion -Z, --ignore-trailing-space ignore white space at line end -b, --ignore-space-change ignore changes in the amount of white space -w, --ignore-all-space ignore all white space -B, --ignore-blank-lines ignore changes whose lines are all blank

Por lo tanto, diff -w old new debe ignorar todos los espacios y, por lo tanto, informar solo líneas sustancialmente diferentes.


diff -bB file[12]

-b, --ignore-space-change ignore changes in the amount of white space -B, --ignore-blank-lines ignore changes whose lines are all blank

Tenga en cuenta que la opción -w ignorará todos los espacios en blanco antes de diferenciarse, por lo que una línea como this isa line y this is a line en cada archivo que se comparará como thisisaline y no informará las diferencias.

Además de los problemas con la opción -w , incluso la opción -b tiene problemas menores y eso no ignora los espacios en blanco si aparecen al principio de una línea

Por lo tanto, debe usar sed para eliminar los espacios en blanco que se produjeron al inicio y luego hacer `diff -bB.

diff -bB <(sed ''s/^[ /t]*//'' file1) <(sed ''s/^[ /t]*//'' file2)