Pages : 1
#1 Le 02/07/2008, à 14:39
- vinvin22
[Résolu]fonction shell avec expr
bonjour,
est ce que quelqu'un pourrait me traduire cette fonction svp...?
cleanflog() { SIZE=`expr "\`wc -c "$FLOG" 2>/dev/null\`" : "\(.*\) .*"`
[ "$SIZE" -gt 10240 ] && mv -f $FLOG $FOLD
return 0
il s'agit d'une fonction qui apparemment me renomme un fichier en un autre si la taille de celui ci atteint les 10240 o, mais je ne comprends pas comment elle fonctionne , a quoi correspondent les \(.*\).*" et le \ avan le wc
si quelqu'un pouvait m'éclairer ou m'indiquer ou je peux m'éclairer...
merci
Dernière modification par vinvin22 (Le 02/07/2008, à 21:44)
Hors ligne
#2 Le 02/07/2008, à 15:49
- Totor
Re : [Résolu]fonction shell avec expr
les \ permettent d'échaper les `,( et ) de l'instructions expr déjà encapsulés par des `.
le (.*) .* (attention, il y a un espace après la parenthèse fermante) va de couple avec expr sous la forme :
STRING : REGEXP
anchored pattern match of REGEXP in STRING
en effet wc -c renvoie le nombre d'octets du fichier ainsi que le nom du fichier sous la forme taille nom_fichier
(.*) permet de cibler la zone taille et de concerver uniquement cette information renvoyée par wc
le tout aurait pu être écrit comme ceci si tu préfères :
cleanflog() {
SIZE=$(wc -c "$FLOG" 2>/dev/null|awk '{print $1}')
[ "$SIZE" -gt 10240 ] && mv -f $FLOG $FOLD
return 0
}
il est aussi possible d'utiliser grep (avec l'option -o) ou sed ou cut ... pour ne récupérer que la taille.
-- Lucid Lynx --
Hors ligne
#3 Le 02/07/2008, à 16:02
- Alain.g
Re : [Résolu]fonction shell avec expr
Bonjour
Pour directement ne pas avoir le nom du fichier, on peut simplement faire : wc -c < "$FLOG"
Xubuntu Karmic !
Hors ligne
#4 Le 02/07/2008, à 17:34
- vinvin22
Re : [Résolu]fonction shell avec expr
ok ca marche , j'ai donc mis:
cleanflog()
{SIZE=`wc -c < "$FLOG" 2>dev/null`
[ "$SIZE" -gt 10240 ] && mv -f $FLOG $FOLD
return 0
}
merci
Hors ligne
#5 Le 02/07/2008, à 19:19
- Totor
Re : [Résolu]fonction shell avec expr
Bonjour
Pour directement ne pas avoir le nom du fichier, on peut simplement faire : wc -c < "$FLOG"
'suis trop nul, j'y pense jamais
-- Lucid Lynx --
Hors ligne
#6 Le 02/07/2008, à 21:44
- vinvin22
Re : [Résolu]fonction shell avec expr
mais nan t'es fort !:cool: j'ai compris a quoi servaient les \ et les (.*) .* grace à toi
merci encore à vous
Hors ligne