Esta questão é semelhante a Como diferenciar apenas a primeira linha de dois arquivos? , mas recursivamente. Eu gostaria de diferenciar dois diretórios, mas:
- diff apenas as primeiras N linhas de cada arquivo nos dois diretórios
- diff tudo exceto as primeiras N linhas de cada arquivo nos dois diretórios
linux
command-line
bash
diff
lanoxx
fonte
fonte
diff -r dir1 dir2
. Você também pode jogar com-I RE
opção para ignorar certas linhas correspondentes.Respostas:
Minha primeira sugestão para você é usar Meld . Ele funciona a partir da linha de comando também.
Tem o seguinte características que pode lhe interessar:
A única coisa que você precisa fazer é descobrir os padrões de regex corretos que podem ser usados para ignorar os dados sem importância (dependendo da sintaxe de seus metadados que você deseja ignorar).
fonte
Esses dois loops usam
diff -qr
fazer um diff inicial, principalmente para obter os nomes dos arquivos facilmente, faça um diff individual no encontrou um par de arquivos.sed
é usado para limpar as primeiras N linhas, ou para manter apenas as primeiras N linhas. Primeiro para limpar as linhas N:E isso para manter N:
Isso não assume espaços / guias em nomes de arquivos.
fonte