8
votes

GNU FAIT AVEC PATSUBST: Besoin de deux substitutions

Je dois référencer la tige deux fois dans le remplacement d'une substitution variable:

o23 = $ (Oroots:% = $ (ODIR) /overx-%2wk-%3wk.mlb)

J'ai besoin d'effectuer deux remplacements avec la même tige, mais la substitution utilise Patsubst qui ne fait que le premier. Comment pouvons-nous accomplir les deux?


0 commentaires

3 Réponses :


4
votes

par kludgery: xxx


5 commentaires

Court d'utilisation $ (shell) , je ne peux penser à aucune option meilleure. Tu as gagné cette fois.


Ceci est gênant si vous avez besoin de vos deux substitutions pour être séparé par WhitSpace (comme vous le supprime); Vous devez ajouter une sorte de délimiteur unique et le remplacer avec WhitSpace après .... ewww


@THOMAS: S'il y a des espaces blanche entre les sites de substitution, le problème est beaucoup plus facile .


@Beta En effet, j'ai élaboré une fonction de jointure récursive avec les fonctions de mot qui fonctionnent bien.


@Thomas: une fonction de jointure reconsive " pourquoi pas seulement STI ?



0
votes

par $ (shell) : xxx

Je pense que kludgery est probablement mieux, car il n'a pas à faire la fourchette à Awk < / code> pour chaque mot dans $ (Oroots) .


0 commentaires

10
votes

En fait, Jack a eu presque raison - foreach à la rescousse! Nous connaissons toute la tige complète et collez-la dans un var, et foreach étend toutes les occurrences du Var:

O23: = $ (Racine de foresach, $ (ODROS), $ (ODIR) / Overex - $ (racine) 2WK - $ (racine) 3wk.mlb)

Je vais vérifier la bêta de toute façon pour la nouvelle perspective.


2 commentaires

Je dois admettre que c'est plus élégant.


Je dois admettre que c'est plus élégant.