Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell

Shell Vos questions sur l'utilisation des commandes shell

Réponse
 
Outils de la discussion
Vieux 06/08/2008, 16h38   #1 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut Cherche Expression rationnelle pour isoler une chaîne

zsh-doc (4.3.2-25) zsh documentation - info/HTML format

Bonjour, je n'arrive pas à trouver l'expression régulière qui me permettrait d'isoler le nom du paquet :

zsh-doc

puis le numéro de version :

4.3.2-25

Est ce que quelqu'un qui serait bon en expressions régulières pourrait m'aider ?

Merci d'avance

Dernière modification par ritual ; 06/08/2008 à 16h58
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2008, 17h43   #2 (permalink)
Modérateur
 
Avatar de ggnore
 
Date d'inscription: juillet 2004
Localisation: Made in normandy
Âge: 29
Messages: 2 120
Par défaut

Code :
$ echo "zsh-doc (4.3.2-25) zsh documentation - info/HTML format" | grep "zsh-doc (4.3.2-25)"


désolé, mais je ne comprends pas ton problème.
Si tu cherches spécifiquement zsh-doc pour inventer une expression régulière alors que tu as une chaîne constante ?!
__________________
Donne un poisson à un homme et tu le nourris pour un jour,
Apprends-lui à pêcher et tu le nourris pour toujours.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2008, 17h57   #3 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

Je me suis mal expliquer peut-être :

J'ai récupéré le fichier .gz qui j'ai converti en .txt qui contient la liste des nouveaux paquets de Debian :

http://packages.debian.org/stable/al...?format=txt.gz

Pour toutes les lignes contenus dans ce fichier, je souhaite afficher uniquement le nom du paquet ainsi que son numéro de version afin de les stocker dans une base données de la façon suivante :

Par exemple pour ces deux lignes de la liste des paquets :

zssh (1.5c.debian.1-1) interactive file transfers over ssh
zsync (0.5-1) client-side implementation of the rsync algorithm

J'aimerai connaître deux expressions rationnelle :

Une qui me donne avec l'association du cat et du grep la sortie suivante :

zssh

Puis une seconde toujours avec la même association la sortie suivante :

1.5c.debian.1-1

Et ceux pour tous les paquets, j'espère que je me suis mieux expliquer.

ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 12h01   #4 (permalink)
Membre éprouvé
 
Avatar de BlaireauOne
 
Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
Par défaut

Ça le fait à 99%, je te laisse terminer

fichier.txt :
Code :
zssh (1.5c.debian.1-1) interactive file transfers over ssh
zsync (0.5-1) client-side implementation of the rsync algorithm
Commande :

Code :
grep -o "[^ ]\+ ([0-9][^)]\+)" fichier.txt
http://www.shellunix.com/regexp.html

Résultat :
Code :
zssh (1.5c.debian.1-1)
zsync (0.5-1)
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 12h26   #5 (permalink)
Modérateur
 
Avatar de ggnore
 
Date d'inscription: juillet 2004
Localisation: Made in normandy
Âge: 29
Messages: 2 120
Par défaut

Tu peux aussi bêtement chercher le deuxième espace et couper avant ou chercher la parenthèse fermante et couper après.
__________________
Donne un poisson à un homme et tu le nourris pour un jour,
Apprends-lui à pêcher et tu le nourris pour toujours.
ggnore est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 14h22   #6 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

merci pour ta réponse !
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 15h04   #7 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

en fait il me faudrait savoir l'expression régulière qui me permettrait de scinder la sortie suivantes en deux parties.

Avec uniquement le nom du paquet, puis le numéro de version.
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 16h38   #8 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

c'est bon en fait j'ai trouvé
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 09h59   #9 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

Je n'arrive pas à trouver encore une expression rationnelle.

Dans le fichier :

cat /etc/apt/sources.list

qui affiche

Citation:
#
# /etc/apt/sources.list
#


#
# etch
#
deb http://ftp.fr.debian.org/debian/ etch main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ etch main contrib non-free

#
# Security updates
#
deb http://security.debian.org/ stable/updates main contrib non-free
deb-src http://security.debian.org/ stable/updates main contrib non-free
Il me faudrait une expression qui récupère les chaînes suivantes :

http://ftp.fr.debian.org/debian/
http://ftp.fr.debian.org/debian/

http://security.debian.org/
http://security.debian.org/

J'ai besoin d'aide ! ! Merci

Dernière modification par al1_24 ; 24/08/2008 à 08h49
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 10h46   #10 (permalink)
Membre du Club
 
Date d'inscription: mars 2006
Messages: 92
Par défaut

Salut,

totalement subjectif :

Code :
cat /etc/apt/sources.list | grep -o "http:.*\..*\/[ ]"
ce qui donnerait dans ton exemple :

Code :
http://ftp.fr.debian.org/debian/
http://ftp.fr.debian.org/debian/
http://security.debian.org/
http://security.debian.org/
Si tu veux supprimer les doublons :

Code :
cat /etc/apt/sources.list | grep -o "http:.*\..*\/[ ]" | uniq
=>

Code :
http://ftp.fr.debian.org/debian/
http://security.debian.org/
eZula est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/08/2008, 14h31   #11 (permalink)
Invité régulier
 
Date d'inscription: août 2008
Messages: 18
Par défaut

merci pour ta réponse rapide
ritual est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Applications > Shell



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide