Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

Logiciel pour comparer deux fichiers et extraire les différences dans un troisième ?

Répondre
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 19168
Enregistré le : ven. 17 oct. 2003, 10:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne

Logiciel pour comparer deux fichiers et extraire les différences dans un troisième ?

.

Message par Mornagest »

Salut,

J'essaie de comparer deux fichiers entre eux (une grosse centaine de modifications) et de copier les lignes différentes du fichier A vers un fichier C qui ne recensera donc QUE les différences, pas les points communs.

Existe-t-il un logiciel qui permette de faire cela de manière automatisée ? À défaut, de montrer les différences, mais que je puisse les sélectionner, les copier manuellement et les coller manuellement dans un fichier à part ?

J'ai tenté KDiff3, c'est impossible de comprendre comment se servir de ce machin. J'ai pu copier-coller des lignes, puis je n'ai plus pu, puis le logiciel a de nouveau accepté que je copie des lignes pendant quelques occurrences, puis de nouveau plus possible... bref, je passe plus de temps à vérifier que ce que je sélectionne est bien copiable que de récupérer mes modifications.

Donc, si un logiciel peut extraire les différences, ça m'arrangerait... surtout que je n'ai pas deux fichiers à comparer mais une vingtaine de couples de fichiers.

Merci d'avance !
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Coucou, il y a l'extension Compare de notepad, tu peux facilement l’intégrer en allant dans l'onglet Modules d'extension / Gestionnaire des modules d'extension puis tu trouveras "Compare".

C'est pas magique non-plus comme extension, mais ça peut te dépanner...

Pour KDiff3 quand tu surlignes ton texte avec Ctrl-C, normalement ça fonctionne toujours pour copier, mais c'est vrai qu'il n'est pas très pratique...

Je jongle entre les deux en fonction des types de fichiers...

Par contre pour extraire directement les différences je ne sais pas comment faire !

Ça vaut peut-être le coup d'attendre de voir ce que d'autres utilisent...
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 19168
Enregistré le : ven. 17 oct. 2003, 10:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne
.

Message par Mornagest »

Merci pour ta réponse ^^

Je pensais aussi que le raccourci Ctrl + C fonctionnait partout, mais ce n'est pas le cas ici. D'autant que dans le menu d'édition, l'option pour Copier est grisée de temps à autre sans que je comprenne pourquoi.

Quand tu parles de Notepad, c'est Notepad++ je présume ?
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
vv221
Grand Gourou
Momie majeure
Messages : 3044
Enregistré le : dim. 17 août 2008, 10:11
Contact :
Statut : Hors ligne
.

Message par vv221 »

La commande diff sous Linux devrait permettre ça.

Pour visualiser les différences à l’échelle de tout le fichier (il faut chercher dans la colonne centrale les chevrons >/< pour les lignes ajoutées/retirées et les barres verticales | pour les lignes modifiées) :

Code : Tout sélectionner

diff --side-by-side /etc/ssh/sshd_config /etc/ssh/sshd_config.ucf-old

Code : Tout sélectionner

							      >	#	$OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj 

# This is the sshd server system-wide configuration file.  Se	# This is the sshd server system-wide configuration file.  Se
# sshd_config(5) for more information.				# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/b |	# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/s

# The strategy used for options in the default sshd_config sh	# The strategy used for options in the default sshd_config sh
# OpenSSH is to specify options with their default value wher	# OpenSSH is to specify options with their default value wher
# possible, but leave them commented.  Uncommented options ov	# possible, but leave them commented.  Uncommented options ov
# default value.						# default value.

Include /etc/ssh/sshd_config.d/*.conf				Include /etc/ssh/sshd_config.d/*.conf

#Port 22							#Port 22
#AddressFamily any						#AddressFamily any
#ListenAddress 0.0.0.0						#ListenAddress 0.0.0.0
#ListenAddress ::						#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key				#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key				#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key				#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying						# Ciphers and keying
#RekeyLimit default none					#RekeyLimit default none

# Logging							# Logging
#SyslogFacility AUTH						#SyslogFacility AUTH
#LogLevel INFO							#LogLevel INFO

# Authentication:						# Authentication:

#LoginGraceTime 2m						#LoginGraceTime 2m
#PermitRootLogin prohibit-password				#PermitRootLogin prohibit-password
#StrictModes yes						#StrictModes yes
#MaxAuthTries 6							#MaxAuthTries 6
#MaxSessions 10							#MaxSessions 10

#PubkeyAuthentication yes					#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default i	# Expect .ssh/authorized_keys2 to be disregarded by default i
#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_	#AuthorizedKeysFile	.ssh/authorized_keys .ssh/authorized_

#AuthorizedPrincipalsFile none					#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none					#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody				#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/s	# For this to work you will also need host keys in /etc/ssh/s
#HostbasedAuthentication no					#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for	# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication					# HostbasedAuthentication
#IgnoreUserKnownHosts no					#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files		# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes						#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here	# To disable tunneled clear text passwords, change to no here
#PasswordAuthentication yes				      |	#PasswordAuthentication no
#PermitEmptyPasswords no					#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (bewar	# Change to yes to enable challenge-response passwords (bewar
# some PAM modules and threads)					# some PAM modules and threads)
KbdInteractiveAuthentication no				      |	ChallengeResponseAuthentication no

# Kerberos options						# Kerberos options
#KerberosAuthentication no					#KerberosAuthentication no
#KerberosOrLocalPasswd yes					#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes					#KerberosTicketCleanup yes
#KerberosGetAFSToken no						#KerberosGetAFSToken no

# GSSAPI options						# GSSAPI options
#GSSAPIAuthentication no					#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes					#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes					#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no						#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account pro	# Set this to 'yes' to enable PAM authentication, account pro
# and session processing. If this is enabled, PAM authenticat	# and session processing. If this is enabled, PAM authenticat
# be allowed through the KbdInteractiveAuthentication and     |	# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuratio	# PasswordAuthentication.  Depending on your PAM configuratio
# PAM authentication via KbdInteractiveAuthentication may byp |	# PAM authentication via ChallengeResponseAuthentication may 
# the setting of "PermitRootLogin without-password".		# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run 	# If you just want the PAM account and session checks to run 
# PAM authentication, then enable this but set PasswordAuthen	# PAM authentication, then enable this but set PasswordAuthen
# and KbdInteractiveAuthentication to 'no'.		      |	# and ChallengeResponseAuthentication to 'no'.
UsePAM yes							UsePAM yes

#AllowAgentForwarding yes					#AllowAgentForwarding yes
#AllowTcpForwarding yes						#AllowTcpForwarding yes
#GatewayPorts no						#GatewayPorts no
X11Forwarding yes						X11Forwarding yes
#X11DisplayOffset 10						#X11DisplayOffset 10
#X11UseLocalhost yes						#X11UseLocalhost yes
#PermitTTY yes							#PermitTTY yes
PrintMotd no							PrintMotd no
#PrintLastLog yes						#PrintLastLog yes
#TCPKeepAlive yes						#TCPKeepAlive yes
#PermitUserEnvironment no					#PermitUserEnvironment no
#Compression delayed						#Compression delayed
#ClientAliveInterval 0						#ClientAliveInterval 0
#ClientAliveCountMax 3						#ClientAliveCountMax 3
#UseDNS no							#UseDNS no
#PidFile /run/sshd.pid					      |	#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100						#MaxStartups 10:30:100
#PermitTunnel no						#PermitTunnel no
#ChrootDirectory none						#ChrootDirectory none
#VersionAddendum none						#VersionAddendum none

# no default banner path					# no default banner path
#Banner none							#Banner none

# Allow client to pass locale environment variables		# Allow client to pass locale environment variables
AcceptEnv LANG LC_*						AcceptEnv LANG LC_*

# override default of no subsystems				# override default of no subsystems
Subsystem	sftp	/usr/lib/openssh/sftp-server		Subsystem	sftp	/usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis		# Example of overriding settings on a per-user basis
#Match User anoncvs						#Match User anoncvs
#	X11Forwarding no					#	X11Forwarding no
#	AllowTcpForwarding no					#	AllowTcpForwarding no
#	PermitTTY no						#	PermitTTY no
#	ForceCommand cvs server					#	ForceCommand cvs server

Pour n’afficher que les lignes différentes :

Code : Tout sélectionner

diff /etc/ssh/sshd_config /etc/ssh/sshd_config.ucf-old

Code : Tout sélectionner

0a1
> #     $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
5c6
< # This sshd was compiled with PATH=/usr/local/bin:/usr/bin:/bin:/usr/games
---
> # This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
57c58
< #PasswordAuthentication yes
---
> #PasswordAuthentication no
62c63
< KbdInteractiveAuthentication no
---
> ChallengeResponseAuthentication no
78c79
< # be allowed through the KbdInteractiveAuthentication and
---
> # be allowed through the ChallengeResponseAuthentication and
80c81
< # PAM authentication via KbdInteractiveAuthentication may bypass
---
> # PAM authentication via ChallengeResponseAuthentication may bypass
84c85
< # and KbdInteractiveAuthentication to 'no'.
---
> # and ChallengeResponseAuthentication to 'no'.
102c103
< #PidFile /run/sshd.pid
---
> #PidFile /var/run/sshd.pid

Et enfin une petite bidouille pour n’afficher que les lignes ajoutées (ou modifiées) :

Code : Tout sélectionner

diff /etc/ssh/sshd_config /etc/ssh/sshd_config.ucf-old | sed --silent 's/^> \(.*\)/\1/p'

Code : Tout sélectionner

#       $OpenBSD: sshd_config,v 1.103 2018/04/09 20:41:22 tj Exp $
# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin
#PasswordAuthentication no
ChallengeResponseAuthentication no
# be allowed through the ChallengeResponseAuthentication and
# PAM authentication via ChallengeResponseAuthentication may bypass
# and ChallengeResponseAuthentication to 'no'.
#PidFile /var/run/sshd.pid
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 19168
Enregistré le : ven. 17 oct. 2003, 10:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne
.

Message par Mornagest »

J'ai vaguement tenté du côté de diff mais j'ai effectivement vu qu'il fallait coupler cela à sed et des expressions régulières dont je ne comprends pas le moindre premier mot, donc j'ai lâchement laissé tomber :gign:

Merci pour ta réponse, je ferai un essai ce soir ou demain et je te dis si ça fonctionne :)
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Avatar du membre
vv221
Grand Gourou
Momie majeure
Messages : 3044
Enregistré le : dim. 17 août 2008, 10:11
Contact :
Statut : Hors ligne
.

Message par vv221 »

Les expressions régulières, je fais partie de cette poignée de masochistes que ça amuse :D
JohnBob
d'Oghmatique
Ogre mage
Messages : 1353
Enregistré le : mar. 28 sept. 2021, 19:52
Localisation : France
Statut : Hors ligne
.

Message par JohnBob »

Mornagest a écrit : jeu. 29 déc. 2022, 13:04 Je pensais aussi que le raccourci Ctrl + C fonctionnait partout, mais ce n'est pas le cas ici. D'autant que dans le menu d'édition, l'option pour Copier est grisée de temps à autre sans que je comprenne pourquoi.
Oui des fois les menus sont grisé, mais quand je clique dessus ça les dégrise... mystère...
Mornagest a écrit : jeu. 29 déc. 2022, 13:04 Quand tu parles de Notepad, c'est Notepad++ je présume ?
En effet !

Il y a Winmerge aussi, qui semble maintenu, pas encore vraiment testé.
Modifié en dernier par JohnBob le jeu. 29 déc. 2022, 17:19, modifié 2 fois.
Avatar du membre
lefreut
d'Oghmatique
Araignée colossale
Messages : 506
Enregistré le : mar. 22 déc. 2009, 14:25
Localisation : Chaville (92)
Statut : Hors ligne
.

Message par lefreut »

Winmerge devrait permettre de le faire. Tu peux comparer tes fichiers, ne voir que les différences entre les 2, générer un fichier contenant ces différences. Tu peux aussi le faire sur 2 répertoires pour comparer tous les fichiers à l'intérieur.
Avatar du membre
Luren
Adepte de Grondemarteau
Ver charognard
Messages : 656
Enregistré le : dim. 20 juin 2010, 08:51
Localisation : Sûrement quelque part mais je n'arrive pas à bien voir où.
Statut : Hors ligne
.

Message par Luren »

Hello,
J'utilise Araxis Merge, qui permet de comparer des fichiers de type texte mais aussi le contenu de 2 dossiers, des fichiers binaires et des images (je crois me rappeler que pour les images c'est pas top, mais c'est hors sujet). Les différences sont mises en surbrillance, on peut facilement naviguer entre elles, et les ajouter/supprimer dans un sens ou dans l'autre, bref, c'est super pratique...
J'ignore en revanche si il permet de résumer le tout dans un troisième fichier (à priori, non). Le logiciel permet de générer un rapport en html/xml qui pourrait s'apparenter au troisième fichier que tu cherches mais ça reste à creuser sur ce point .
Modifié en dernier par Luren le ven. 30 déc. 2022, 09:29, modifié 1 fois.
Avatar du membre
Mornagest
Grand Gourou
Élu de Mystra
Messages : 19168
Enregistré le : ven. 17 oct. 2003, 10:48
Localisation : Juste derrière vous, prêt à hurler BOUH !
Statut : Hors ligne
.

Message par Mornagest »

Pour l'instant je suis passé par WinMerge, qui me permet de sélectionner les différences, les copier et les coller dans un fichier à part.

Je suis obligé de travailler comme ça car je cherche les différences entre fichiers .css :

Fichier modifié :

Code : Tout sélectionner

body {
	font-family: verdana, geneva, lucida, "lucida grande", arial, helvetica, Sans-serif;
	font-size: 10px;
	line-height: normal;
	margin: 0;
	padding: 12px 0;
	word-wrap: break-word;
	-webkit-print-color-adjust: exact;
}
Fichier d'origine :

Code : Tout sélectionner

body {
	font-family: Verdana, Helvetica, Arial, sans-serif;
	font-size: 10px;
	line-height: normal;
	margin: 0;
	padding: 12px 0;
	word-wrap: break-word;
	-webkit-print-color-adjust: exact;
}
Sauf qu'évidemment, il va trouver une différence sur cette ligne :

Code : Tout sélectionner

	font-family: verdana, geneva, lucida, "lucida grande", arial, helvetica, Sans-serif;
mais je souhaite bien sûr récupérer l'ensemble de la consigne CSS pour l'élément body, sinon, mon .css final ne sert pas à grand-chose ^^

Donc, en copiant-collant, ça fonctionne, et je pense que c'est le plus adapté à mon usage précis actuel :)
Administrateur général. Je modère dans cette couleur.

Rejoignez Melandis, la Cité du Chaos
La biographie de Mornagest ainsi que ses quêtes et sa couleur RP #6C84FF ; la biographie de Henk et sa couleur RP #3BBB34

"Ne vous imaginez pas être différente de ce qu'il eût pu sembler à autrui que vous fussiez ou eussiez pu être en restant identique à ce que vous fûtes sans jamais paraître autre que vous n'étiez avant d'être devenue ce que vous êtes."
(Lewis Caroll)
Répondre

Retourner vers « Outils de développement »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 3 invités