2009-05-24 8 views
0

Existe-t-il une différence entre les expressions régulières sous Linux et HPUX?Expressions régulières sous Linux/HPUX

Je les utilise dans sed.

J'essaie ceci qui ne fonctionne que sur Linux:

sed -e "s/^ \ s ant de \ s ant $/#/g" Makefile

maintenant Je vois que si je supprime le '^' alors ça marche aussi sur HP. Pour autant que je sache, cela devrait être supporté par les deux.

Répondre

2

Où les utilisez-vous? En sed? Dans certains langages de script (disons, perl)? Ailleurs? La question n'est pas claire. Vous devez poster votre regex réelle, ou mieux, un exemple de script/entrée/sortie. Quoi qu'il en soit, \s, je suppose, signifie «espace» et cela est déterminé par les paramètres régionaux et, peut-être, d'autres facteurs.

+0

oui, en utilisant sed. –

+0

Votre contribution s'il vous plaît? Et le regex réel? Quoi qu'il en soit, c'est probablement une chose locale. Vous pourriez essayer d'utiliser [: space:] au lieu de \ s aussi. – shylent

1

La réponse courte est "oui, il y a probablement une différence".

La réponse longue:

Cela dépend de quelle version vous utilisez sed sur chaque machine, pas ce que le système d'exploitation de la machine est en marche. Dans mon expérience, j'ai découvert que la boîte à outils (c'est-à-dire sed, grep, awk, etc.) installée sur HP-UX est souvent inférieure aux versions trouvées sur la plupart des distributions Linux populaires. Je pense que sur HP-UX, vous utilisez une version de sed construite par HP et que vous utilisez GNU sed sous Linux. Vous devrez soit lire ce que la version HP peut ou ne peut pas faire et trouver le terrain d'entente avec votre version sur Linux, ou voir si vous pouvez obtenir la version GNU installée quelque part sur votre machine HP. En ce qui concerne l'expression rationnelle spécifique que vous indiquez, ainsi que pour tout problème d'expression rationnelle, il serait utile de donner un exemple de texte à comparer et d'indiquer ce que vous attendez de l'expression rationnelle.

Questions connexes