Le 22/02/08 05:03, dans <fplhet$e38$1@news.tiscali.fr>, « Cornillet Pascal »
<p.cornillet@laposte.net> a écrit :
je suis sous linux et un utilisateur sous Mac OS me rapporte un problème
avec sed qui est utilisé dans le Makefile d'un projet.
Pour information Mac OS X est un système unix et Mac OS est l'ancien système
qui n'a rien à voir.
Le problème est qu'un motif de remplacement doit contenir des guillemets
(simple ou double peu importe), or il semblerait que sous Mac OS les
guillemets à l'intérieur de la commande sed soient supprimées.
Nous avons essayé avec les commandes suivantes :
sed -e 's/pattern/"replacement"/g'
sed -e 's/pattern/'\''replacement'\''/g'
qui malheureusement sont interprétés sous mac comme :
sed -e 's/pattern/replacement/g'
Quel astuce puis-je utiliser pour que le motif de remplacement contienne des
guillemets (et que cela fonctionne sous mac-os) ?
L'évaluation des caractères spéciaux est faite au niveau du shell (et pas
des commandes comme sous Windows). Sous Mac OS X (et pas Mac OS ou mac-os ou
Mac-OS), le shell par défaut était, il y a quelques années, tcsh; et est
maintenant bash. La dernière version de Mac OS X utilise la version bash du
GNU version "3.2.17(1)-release". Le programme make de Mac OS X est lui aussi
du GNU, comme sur GNU/Linux (version 3.81 pour la dernière version).
Ceci étant dit, il n'y a aucune différence d'évaluation des patterns que tu
donnes entre un bash sur Mac OS X ou un bash sur GNU/Linux (enfin au bugs
entre versions bash bien sûr).
Toute personne sous Mac OS X peut installer et configurer à sa façon le
shell qui veut, ceci n'est pas réservé aux utilisateurs GNU/Linux. On peut
trouver ainsi des shells qui ignorent la casse dans le traitement des
fichiers, d'autres non. Il serait bon de connaître la configuration qui a
été modifiée sur le Mac OS X de ton utilisateur pour connaître la cause du
problème.
--
Éric Lévénez -- <
http://www.levenez.com/>
Unix is not only an OS, it's a way of life.