diff de arquivos de configuração mostrando apenas linhas não comentadas

0

Considere a necessidade de usar 'diff' para comparar dois arquivos com muitas linhas comentadas, como arquivos de configuração do sistema. (Por exemplo, os arquivos podem ser /etc/cups/cups-files.conf.pacnew e /etc/cups/cups-files.conf.)

Gostaria de ignorar as diferenças de quaisquer linhas comentadas como estas:

< #DocumentRoot /usr/share/cups/doc
---
> #DocumentRoot /usr/share/cups/doc-root

Eu só quero ver diferenças de linhas ativas (não comentadas).

(Eu também gostaria de ignorar as diferenças de espaço em branco. Eu menciono isso para conclusão caso a solução acima interfira em usar a opção -w ).

    
por MountainX 17.02.2018 / 22:56

1 resposta

1

Você pode filtrar as linhas comentadas antes de comparar os arquivos:

diff -u -w <(grep -v '^[[:space:]]*#' /etc/cups/cups-files.conf.pacnew) <(grep -v '^[[:space:]]*#' /etc/cups/cups-files.conf)

Dessa forma, diff só verá linhas não comentadas e só as comparará.

    
por 17.02.2018 / 23:02

Tags