'diff -y arquivo- {a, b} | menos 'e finais de linha DOS exibem problemas

2

No meu trabalho atual, muitas vezes eu tenho que trabalhar com arquivos de máquinas Windows, que na maioria das vezes não é grande coisa, mas quando estou passando um lado a lado diff to less , não apenas o ^M está sendo exibido, mas também atrapalha o recuo , como no seguinte:

<U+FEFF>using System;^M                                 <U+FEFF>using System;^M                                 
using System.Reflection;^M                                      using System.Reflection;^M                                      
using System.Runtime.Serializa^M                                        using System.Runtime.Serializa^M                                        
using System.Transactions;^M                                    using System.Transactions;^M                                    

(Eu particularmente não me importo com a lista de materiais UTF-8 na primeira linha, já que ela afeta apenas uma linha).

Eu sei que posso fazer um

diff -y <(tr -d '5' < file-a) <(tr -d '5' < file-b) | less

Mas é muita coisa para escrever, e quando file-a e file-b compartilham um caminho longo, você não pode usar o nicho de chaves do bash. E

diff -y file-{a,b} | tr -d '5' | less

não resolve, pois a formatação já está desarrumada.

Curiosamente, os itens a seguir são exibidos bem em termos de ^M e recuo:

diff -y file-{a,b} | head

Então, minha pergunta é: como faço para que os diffs lado a lado sejam canalizados para menos sem os problemas mencionados anteriormente? (Como adicionar algum parâmetro para diff ou menos que eu não conheço)

    
por Eugene Beresovsky 09.12.2014 / 05:13

1 resposta

0

Se você não modificar os arquivos, apenas imprima as diferenças, então uma opção é simplesmente ignorar todos os espaços em branco com a opção -w , para que você possa usar suas chaves normalmente

diff -wy file-{a,b} | less

Claro que este método só funciona se não houver outras mudanças importantes no espaço em branco.

Se sua intenção é reparar os arquivos, então eu recomendaria usar o utilitário dos2unix .

    
por 09.12.2014 / 05:31