Eu quero diferenciar apenas a primeira linha de dois arquivos, em oposição ao arquivo inteiro. Como eu faria isso? Eu só preciso de uma solução para a primeira linha, mas se você pudesse especificar o número de linhas, seria uma resposta muito melhor.
Portanto, o diff não retornará diferenças entre os dois arquivos a seguir:
a
1
2
e:
a
3
4
linux
command-line
diff
gsingh2011
fonte
fonte
Respostas:
Aqui está:
(isso não retornaria nada do que nunca).
Você pode incorporar isso em um script para fazer as coisas mencionadas.
Para usar isso, apenas torne o script executável com
chmod +x nameofscript.sh
e, em seguida, execute./nameofscript.sh ~/file1 ~/Docs/file2
Isso deixa o número de linhas padrão em 1, se você desejar acrescentar um número ao final desse comando.(Ou você pode alternar no seu script com -f1 arquivo1 -f2 arquivo2 -n 1, mas não me lembro do topo da minha cabeça a declaração de caso para isso).
head
retorna desde o início o número de linhas, conforme sugerido por-n
. Se você quiser fazer a reversão, seriatail -n ${numLines}
(a cauda faz, no final, o número de linhas).Editar 10/10/16:
Isso é específico para o Bash (e shells compatíveis). Se você precisar usar isso de outra coisa:
fonte
diff -r dir1 dir2
para diretórios, para limitá-lo, você provavelmente desejará canalizar isso para outra coisa. Se você tiver detalhes, abra uma nova pergunta e forneça um link aqui.bash -c "diff <(...) <(...)"
diff -U (n de linhas) arquivo1 arquivo2
fonte
-U
argumento? :)