cerhu > linux.debian.user.french

Francois Meyer (22/03/2019, 22h00)
Bonjour à tous

Je cherche à patcher un fichier sans rien lui retirer.

Autrement dit, ajouter à un fichier  les lignes d'un autre fichier mais
seulement celles qui n'y sont pas déjà.

Il doit y avoir une option dans diff ou patch, mais je ne trouve pas, et
la seule solution (sale) que j'ai trouvée consiste à effacer les lignes
commençant par "-" dans le fichier patch puis à appliquer le patch
normalement sur le fichier à incrémenter.

Merci, bonne journée

François
Étienne Mollier (22/03/2019, 22h30)
François Meyer, au 2019-03-22 :
> Je cherche à patcher un fichier sans rien lui retirer.
> Autrement dit, ajouter à un fichier les lignes d'un autre
> fichier mais seulement celles qui n'y sont pas déjà.
> Il doit y avoir une option dans diff ou patch, mais je ne
> trouve pas, et la seule solution (sale) que j'ai trouvée
> consiste à effacer les lignes commençant par "-" dans le
> fichier patch puis à appliquer le patch normalement sur le
> fichier à incrémenter.


Bonjour François,

Les programmes diff et patch ont été écrit dans une optique de
génie logiciel, où retirer des lignes a autant d'importance que
d'en ajouter. Filtrer le résultat du diff pour votre cas
d'usage comme vous le faite n'a rien de bien choquant, tant que
ce n'est pas pour mettre à jour du code source. :)

Si vraiment vous voulez minimiser le nombre de commandes lancées
par votre script, jetez un ?il au manuel de diff(1), à partir de
l'option -D, il semble qu'il y ait des options de formatage qui
permette des manipulations intéressantes sur la sortie de diff.
Notez toutefois que manipuler le formatage n'est pas compatible
avec les options -u et -U. Je crains cependant que la
lisibilité de votre script n'en pâtisse.

Mais si vraiment les performances sont un problème, une
réimplémentation en langage compilé (C, Rust, ...) du problème
que vous voulez résoudre peut être une solution plus appropriée.

À vous de voir...

Amicalement,
Discussions similaires
to:references:from:message-id:date:mime-version

mail.app content-type et mime-version

message illisible format MIME

[Mail] Message en mime


Fuseau horaire GMT +2. Il est actuellement 22h33. | Privacy Policy