Commande expr

Eul Mulot

Membre actif
12 Juin 2006
822
73
37
Belfort
Bien le bonjour,

j'ai remarqué que la commande expr n'était pas "complète" sur mon mac, en effet, sur les machines de mon iut (sous Red Hat), il a expre avec de plus des expre index et expre substr, mais cela ne fonctionne pas dans mon terminal, et ne figure pas dans le man. Cela a-t-il un rapport avec le fait que je sois en csh ?

Merci d'avance.
 
En fait j'utilises le csh dans le cadre de ma première année, et je verrai le bash en seconde il me semble.

En fait, j'avais besoin de cette fonction pour pouvoir a l'aide de expr index localiser le point de l'extension d'un fichier puis à l'aide de expr substr retourner le nom du fichier snas l'extension? Bien entendu, un basename est bien plus rapide et pratique, mais je trouvais cela étrange qu'il me "manque" une partie de la fonction expr, j'ai bien la partie qui sert à comparer des nombres ou expressions dans le man, mais rien sur les chaines, en théorie lorsque que je tape "expr index mulot.txt "." " il est censé me retourner 6, mais dans mon terminal ça se fini en syntaxe error.

Darwin est exactement pareil qu'un noyaux Linux "classique" ou il y a quelques différences ?
 
Darwin n'a rien d'un noyau Linux ;) !
Darwin est grosso modo un noyau Mach enrobé de BSD [c'est approximatif, hein !]
Là-dessus, Apple a ajouté plein de merveilleuses extensions et gestions du système.

Celà étant, ton souci n'a rien à voir avec le noyau mais simplement avec la version de expr que tu utilises. Je pense que cela vient avec les GNU Utils.

Par ailleurs, pour connaître les versions de csh que tu utilises :
Bloc de code:
csh --version
Chez moi [PowerBook Tiger 10.4.8] la version de csh est :
Bloc de code:
tcsh 6.12.00 (Astron) 2002-07-23 (powerpc-apple-darwin) options 8b,nls,dl,al,kan,sm,rh,color,dspm,filec
 
Eul Mulot a dit:
En fait j'utilises le csh dans le cadre de ma première année, et je verrai le bash en seconde il me semble.

En fait, j'avais besoin de cette fonction pour pouvoir a l'aide de expr index localiser le point de l'extension d'un fichier puis à l'aide de expr substr retourner le nom du fichier snas l'extension? Bien entendu, un basename est bien plus rapide et pratique, mais je trouvais cela étrange qu'il me "manque" une partie de la fonction expr, j'ai bien la partie qui sert à comparer des nombres ou expressions dans le man, mais rien sur les chaines, en théorie lorsque que je tape "expr index mulot.txt "." " il est censé me retourner 6, mais dans mon terminal ça se fini en syntaxe error.

Darwin est exactement pareil qu'un noyaux Linux "classique" ou il y a quelques différences ?
pourquoi il y a encore des gens qui font ce genre de truc en bash ou autre *sh...

Bloc de code:
#!/usr/bin/env perl
use strict;

:zen:
 
J'ai failli penser comme toi ;) mais si j'aime bien PERL et d'autres de ses collègues, il se trouve que bash comprend de nombreuses fonctionnalités bien pratiques tout en restant très simple. Mine de rien, PERL a gagné en complexité avec le temps. Et pour l'apprenti scripteur, le maniement des variables de PERL n'est pas toujours trivial.

Quoi qu'il en soit, je pense que nous serons d'accord pour dire que essayer de réaliser la même chose avec différents langages est ce qui est le plus formateur.
 
J'esseyerai de regarder de mon côté le bash et Perl.

Ma version csh :
Bloc de code:
tcsh 6.12.00 (Astron) 2002-07-23 (i386-apple-darwin) options 8b,nls,dl,al,kan,sm,rh,color,dspm,filec

Est- il possible qu'une commande similaire à expre index et expre substr se trouvent dans Darwin ? Est-il possible "d'ajouter" des commandes ou de les compléter ?

En tout cas merci à tous pour vos réponses rapides et claires ! :)
 
J'ai failli penser comme toi ;) mais si j'aime bien PERL et d'autres de ses collègues, il se trouve que bash comprend de nombreuses fonctionnalités bien pratiques tout en restant très simple. Mine de rien, PERL a gagné en complexité avec le temps. Et pour l'apprenti scripteur, le maniement des variables de PERL n'est pas toujours trivial.

Quoi qu'il en soit, je pense que nous serons d'accord pour dire que essayer de réaliser la même chose avec différents langages est ce qui est le plus formateur.
C'ets vrai, mais faut reconnaitre que les expressions régulière dnas Perl (et autre Ruby etc...) sont plus pratique pour ce genre de chose (et fait sprécialement pour).


Perl n'est pas si compliquer si on s'en sert pour faire ce pour quoi il a été créé : exactement le genre de chose que Eul Mulot veut faire.


Après la POO et des librairies graphiques etc ont été implémenté dans Perl, moi je trouve que ça n'a pas d'intérêt. Perl n'est pas fait pour, et on le voit par la complexité de ce genre de truc.


M'enfin sinon ça vaut le coup d'apprendre Perl quand on en a l'utilité comme ça parce qu'une fois qu'on connait ça sert à plein de truc de ce genre :-)
 
  • J’aime
Réactions: bompi