Chgt de version d'unix : probleme en ksh

Fermé
ema - 21 oct. 2003 à 13:39
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 - 21 oct. 2003 à 14:23
bonjour,
nous venons de changer de version d'unix : passage de digital unix version 4 à la version 5.1.
Depuis, il y a des problemes dans les scripts ksh.
Je voudrais savoir pourquoi avant ceci fonctionnait :
cat /tmp/titi| grep -v SESSION | grep -v - > /tmp/titi

c'est un tri d'un fichier (suppression des mot session et des tiret "-") que je renvoie dans ce meme fichier.
Maintenant, je suis obligé de le renvoyer dans un autre fichier, sinon, celui-ci se vide.
cat /tmp/titi | grep -v SESSION | grep -v - > /tmp/toto

merci d'avance.
A voir également:

2 réponses

désolé, j'avais oublié d'inscrire mon email.
0
asevere Messages postés 13084 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 3 février 2022 426
21 oct. 2003 à 14:23
Salut,
La veritable question, c'est pourquoi ça marchais avant :o)
En effet
 cat /tmp/titi| grep -v SESSION | grep -v - > /tmp/titi

n'aurait jamais du marcher....
Les operateurs de redirection de sortie ( ">" ici) sont normalement interprétés en premier lieu.
La commande commence donc par créer un fichier vide /tmp/titi et ensuite execute cat /tmp/titi | grep...
Il ne faut jamais faire des trucs du genre
grep "stuff" fic1 >fic1

il est preferable de faire
grep "stuff" fic1 > tmp
mv tmp fic1

ou mieux, d'utiliser awk ou sed :)

voii voilou!
@++


"Si c'est stupide et que ça marche,
        alors ce n'est pas stupide"
0