Pages : 1
#1 Le 15/10/2009, à 13:51
- oobuntu
egrep problème script bash
Je veux extraire une chaîne telle que '20##########' dans le fichier test.htm
Je lance donc
egrep -o 20[0-9]{10} test.htm
Dans un terminal, cela me ressort une liste d'une douzaine de nombre à douze chiffres (ce que je veux, OK)
La même commande dans un script bash et le script reste planté là !?
un ps -ef me donne
UID PID PPID C SZ RSS PSR STIME TTY TIME CMD
(...)
frans 17987 17984 0 752 784 1 14:46 pts/4 00:00:00 egrep 20[0-9]{10}
(...)
Une idée ?
Hors ligne
#2 Le 15/10/2009, à 13:59
- Coolgeek
Re : egrep problème script bash
as tu bien preciser le nom du fichier ?
Hors ligne
#3 Le 15/10/2009, à 14:04
- oobuntu
Re : egrep problème script bash
as tu bien preciser le nom du fichier ?
Comme je le montre dans le code (c'est un "copié-collé")
Je précise que j'ai essayé avec les guillemets simples et doubles, sans l'option -o mais c'est pareil !
Dernière modification par oobuntu (Le 15/10/2009, à 14:08)
Hors ligne
#4 Le 15/10/2009, à 14:43
- twocats
Re : egrep problème script bash
Que donne :
bash -x tonscript.sh
La réponse est 42
Hors ligne
#5 Le 15/10/2009, à 14:55
- oobuntu
Re : egrep problème script bash
voilà :
(...)
+ egrep -o 20[0-9]{10} test.htm
et c'est tout, ça s'arrête là !
P.S. Je crois que je ne vais pas m'éterniser sur ce problème, je vais le contourner avec un grep sur une autre chaîne puis cut.. puis sed.. et je pourrai extraire ce que je veux.
Le but du script est de télécharger certaines images liées présentes dans une page html, le egrep -0 me sortait directement les URLs des images.
Quand on n'a pas de solution à un bug on le contourne. Le reste est de la curiosité ou de l'obstination.
Hors ligne
#6 Le 15/10/2009, à 15:42
- Totor
Re : egrep problème script bash
Rajoute ceci en début de script (après le sheebang) et donne le résultat :
shopt
echo $-
sinon, si tu procèdes ainsi, ça donne quoi ? (normalement, ça ne change rien mais bon)
egrep -o '20[0-9]{10}' test.htm
ou
egrep -o 20[0-9]{10} < test.htm
-- Lucid Lynx --
Hors ligne
#7 Le 15/10/2009, à 16:11
- oobuntu
Re : egrep problème script bash
Nan, je laisse tomber.
Merci.
Et pour ta peine, un petit script qui télécharge des images météo satellite temps réel ( toutes les 15') sur la France :
Il s'autoplanifie toutes les 3 heures (on peut mettre moins) mais comme il y a ~14 images disponibles chaque fois à 4 images par heure, cela fait 12 images pour 3 heures, ça évite de surcharger le serveur.
Le script peut être adapté. Les répertoires doivent exister (sont créés une fois pour toutes).
PROG=${0##*/}
pidof -x -o $$ $PROG && exit 1 # Sort si une autre instance est en cours
[ -z "$(atq -q s)" ] && at -q s now + 3 hours <<< $0 # Lance la planification si non planifié
DOSS="$HOME/Images/meteo/$PROG-fr"
LOGFILE="$HOME/Images/meteo/$PROG.log"
HTMFILE="/dev/shm/$PROG.htm"
SITE="http://www.sat24.com"
URL1="region.aspx?type=last"
wget -O $HTMFILE "$SITE/$URL1&country=fr" || exit 1
LISTE=$(grep "$URL1&time=" $HTMFILE | cut -d"'" -f2 | sed 's/region.aspx/image.ashx/')
for URL in $LISTE
do
FILE=$DOSS/${URL:28:6}-${URL:34:4}.jpg
[ -f $FILE ] || wget -O $FILE "$SITE/$URL" && convert $FILE $FILE
ENTETE="$(date '+%a %e %b %Y %T') :"
echo "$ENTETE ${FILE##*/} enregistré" >> $LOGFILE
done
exit 0
Hors ligne
Pages : 1