Je souhaite différencier uniquement la première ligne de deux fichiers, par opposition à l'ensemble du fichier. Comment ferais-je ça? Je n'ai besoin que d'une solution pour la première ligne, mais si vous pouviez spécifier le nombre de lignes, ce serait une bien meilleure réponse.
Diff ne renvoie donc aucune différence entre les deux fichiers suivants:
a
1
2
et:
a
3
4
linux
command-line
diff
gsingh2011
la source
la source
Réponses:
Voici:
(cela ne retournerait rien du tout).
Vous pouvez l'intégrer dans un script pour faire les choses que vous mentionnez.
Pour l'utiliser, il suffit de rendre le script exécutable avec
chmod +x nameofscript.sh
puis de l'exécuter,./nameofscript.sh ~/file1 ~/Docs/file2
cela laisse le nombre de lignes par défaut à 1, si vous voulez ajouter un nombre à la fin de cette commande.(Ou vous pouvez faire des changements dans votre script avec -f1 file1 -f2 file2 -n 1, mais je ne me souviens pas du haut de ma tête la déclaration de cas pour cela).
head
retourne depuis le début le # de lignes comme suggéré par-n
. Si vous vouliez faire l'inverse, ce seraittail -n ${numLines}
(la queue fait de la fin le nombre de lignes).Modifier le 5/10/16:
Ceci est spécifique à Bash (et aux shells compatibles). Si vous devez utiliser ceci à partir d'autre chose:
la source
diff -r dir1 dir2
pour les répertoires, pour le limiter, vous voudrez probablement le rediriger vers autre chose. Si vous avez des détails, ouvrez une nouvelle question et donnez un lien ici.bash -c "diff <(...) <(...)"
diff -U (n de lignes) file1 file2
la source
-U
argument? :)