formatação do resultado do diff

4

Eu tenho 2 arquivos que eu quero diferir. O arquivo B é produzido anexando alguma nova linha ao arquivo A. Quero destacar os dados anexados usando diff .

Eu gostaria de evitar imprimir o '>' caracteres e o '10a11,14' da saída abaixo.

Lendo as man pages de diff , posso ver que você pode especificar a formatação do resultado (LFMT), mas estou lutando para produzir algo útil.

Você poderia ajudar a remover os personagens que eu não preciso?

Atenciosamente

AFG

   diff --left-column A.txt  B.txt

   10a11,14
   > TXT :   some text
   >         some text
   >         some text
   >         some text
    
por Abruzzo Forte e Gentile 15.02.2013 / 10:13

2 respostas

5

Existem duas maneiras fáceis de fazer isso, você pode analisar a saída de diff ou você pode usar comm .

  • diff fileA fileB | grep '>' | sed 's/> *//'

  • comm -13 fileA fileB

por 15.02.2013 / 10:51
4

Embora mais digitação do que apenas usar comm , o seguinte fornece uma demonstração das opções --GTYPE-group-format :

diff --unchanged-group-format="" --new-group-format="%>" A.txt B.txt

Esse comando só imprimiria essas linhas em B.txt e não em A.txt . A primeira opção suprime linhas comuns. Não há necessidade de usar --changed-group-format (nenhuma linha que tenha valores diferentes em cada arquivo) ou --old-group-format (tudo em A.txt também está em B.txt ).

    
por 16.02.2013 / 00:09