traduire un script BASH en KSH (pb avec sed) - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 20-02-2008 à 19:16:27
c'est peut-être pas le shell mais plutôt la version de sed le problème non ?
Marsh Posté le 21-02-2008 à 10:38:52
sed ce n'est pas la bonne solution, déjà parce que la sortie de la commande "date" peux varier selon la locale et le système. Te ferais mieux d'utiliser les formats de la commande date pour récupérer directement la chaine dont tu as besoind (date '+%...').
Marsh Posté le 25-02-2008 à 09:41:26
Salut,
Vous avez tous les deux apporté une partie de la solution, un grand merci à vous.
Pour la version de sed:
sed, sous solaris, ne gère pas certains caractères spéciaux comme bash le fait:
pour simplifier un '[0-9]' dans une regex, on remplace par '\d', pour simplifier un '[a-zA-Z]', c'est \w, un espace \s ...
sous solaris, les \w \d ou \s par exemple ne sont pas compris par le moteur de sed, il faut dont garder la notation classique ..
Pour la date:
c'est vrai qu'il est beaucoup plus malin d'utiliser les options de la commande unix:
Code :
|
@++
Marsh Posté le 20-02-2008 à 18:09:13
Bonjour à tous,
j'ai un script BASH qui fonctionne très bien sous redhat, avec bash.
Je dois maintenant faire tourner mon script sur un Solaris 8 (secure) qui ne dispose que de sh et ksh.
Script BASH:
Pour la version KSH, j'ai changé l'interpréteur, en mettant:
J'ai vérifié que les chemins soient correctes et lors de l'interprétation du script, le sed ne fonctionne pas:
J'ai cherché pas mal de temps sur les différences entre les shell, sur sed ... mais je ne trouve pas comment contourner le probleme.