Awk sous windows (cygwin) - Shell/Batch - Programmation
Marsh Posté le 10-09-2007 à 14:21:48
Bonjour,
j'ai contourner le problème mais la je bloque sur un autre souci,
A l'aide du awk j'ai formater un fichier de la manière suivante :
xxxxx xxxxxx xxxxxx xxxxxxx 156
xxxxx xxxxxx xxxxxx xxxxxxx -35
xxxxx xxxxxx xxxxxx xxxxxxx 0
xxxxx xxxxxx xxxxxx xxxxxxx 0
xxxxx xxxxxx xxxxxx xxxxxxx 100
xxxxx xxxxxx xxxxxx xxxxxxx -25
xxxxx xxxxxx xxxxxx xxxxxxx 12
Est je désire remplacer chaque valeur négative par cette meme valeur à laquelle on rajouterai 1440
Je debute en Dos et je vous remercie de votre aide.
Marsh Posté le 10-09-2007 à 22:58:03
Tu peux ajouter ce qui suit à ton code awk :
if ($5 <0) $5 += 1440; |
Jean-Pierre.
Marsh Posté le 11-09-2007 à 12:02:32
bonjour,
peut tu préciser la commande (n'oublie pas que cest du DOS)
awk "{print $1,$2,$3,$4,$5,$6,if ($5 <0) $5 += 1440}" fic2.tmp
awk: cmd. line:1: {print $1,$2,$3,$4,$5,$6,if ($5 <0) $5 += 1440}
awk: cmd. line:1: ^ parse error
awk: cmd. line:1: {print $1,$2,$3,$4,$5,$6,if ($5 <0) $5 += 1440}
awk: cmd. line:1: ^ parse error
Marsh Posté le 15-09-2007 à 15:03:13
chameau59 a écrit : bonjour, |
Deux possibilités :
1) Tu modifie la champ avant de faire le print :
awk "{if ($5 <0) $5 += 1440;print $1,$2,$3,$4,$5,$6}" fic2.tmp |
2) Tu effectue un test au niveau du print :
awk "{print $1,$2,$3,$4,($5<0 ? $5+1440 : $5),$6}" fic2.tmp |
Jean-Pierre.
Marsh Posté le 06-09-2007 à 17:09:38
Bonjour,
pour les besoins d'un script je dois inserer des ":" dans une colone d'un fichier texte.
sous unix j'utilise la commande :
qui marche bien sous aix mais voila je dois le faire sur un serveur windows sur lequel cygwin est installé et je n'arrive pas à trouver a commande qui va bien... il a du mal avec les ":" dans le substr....
merci de votre aide