Je veux écrire quelque chose dans ces lignes:
$(foreach (var1, var2), ($(LIST1), $(LIST2)), cp $(var1) $(var2);)
4 Réponses :
LIST3 := $(join $(LIST1),$(LIST2))
Yup parce que je ne veux pas le produit croisé, j'ai besoin d'une cartographie unique. C'est ce qui a mon cerveau en boucle.
Sooooo ... vous avez marqué cette réponse comme correcte. Il ne semble pas répondre à la question que vous avez eue. Est-ce ce que tu voulais ou pas?
Ce n'est pas la réponse que je voulais, mais personne n'a répondu après quelques jours, je l'ai donc marqué comme la réponse correcte la plus relativement correcte. Si vous avez une meilleure réponse, veuillez poster.
@Matthewhoggan, je n'ai pas compris votre commentaire. Vous voulez dire que vous voulez un résultat comme A1 B2 C3 code>?
Corrigez-moi si je me trompe si j'ai une liste (A, B, C) et (1, 2, 3) et je gère les scripts ci-dessus, je reçois un, 1 A, 2 A, 3, B, 1, B, 2, B, 3, ... quand je veux un, 1 b, 2 c, 3
La suggestion de Beta à utiliser Join est sur la bonne voie, mais le problème est que ce n'est pas si facile de l'utiliser de manière à construire une ligne de commande contenant des espaces blancheurs, tels que celui que vous avez initialement souhaité:
$(subst ^, ,$(join $(addprefix cp^,$(LIST1)),$(patsubst %,^%;,$(LIST2))))
Ceci est un bon candidat pour GSML (GNU effectue une bibliothèque standard). Vous pouvez l'inclure en mettant les fichiers sorties p> __ gmsl code> et
gml code> dans le répertoire actuel (ou dans
/ usr / gnu / include code>,
/ usr / local / include / code>) et l'ajout de la ligne
inclure GSML code> dans votre maquillage. Il inclut la fonction
paireMap code>, qui fait exactement ce que vous voulez (c'est-à-dire
zipwith code>).
$ make
A : 1 B : 2 C : 3 D : 4
cp A 1; cp B 2; cp C 3; cp D 4;
Un peu ancien mais j'ai trouvé cela vous permet de faire exactement ce dont vous avez besoin. Vous aurez besoin de l'utilitaire J'ai écrit l'exemple avec des variables d'impression, mais cela devrait fonctionner avec la copie. P> SEQ code> qui est un utilitaire UNIX et sera disponible sur Linux et Mac.
a1 b1
a2 b2
a3 b3
a4 b4
Aussi, comme j'écris cette chose sur la longue façon, j'ai réalisé que j'aurai besoin en dehors d'une règle.