Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/05/2007, 16h58   #1
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 90
Points : 39
Points : 39
Par défaut Extraction de chaine dans un fichier

Bonjour,

Je souhaite, en ligne de commande Shell :
- extraire du fichier tous les mots se terminant par '.exe'
et tous les mots sont compris entre '>' et '<'

Merci pour votre aide
bye
Sakapatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/05/2007, 22h59   #2
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par Sakapatate
Bonjour,

Je souhaite, en ligne de commande Shell :
- extraire du fichier tous les mots se terminant par '.exe'
et tous les mots sont compris entre '>' et '<'

Merci pour votre aide
bye

Pas garanti vu que tu ne donnes pas d'exemple du contenu du fichier à analyser

sed -n -e "/\.exe$/p" -e "/>[^<]*</s/>\([^<]*\)</\1/gp"
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 19h54   #3
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 90
Points : 39
Points : 39
hello,

En effet, j'ai pas mis bcp d'info.
Voici un exemple de chaine de caractère :
"version >2-1.exe< du 13/02"
et moi je veux extraire la chaine : 2-1.exe

Merci pour ton aide...
bye
Sakapatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/05/2007, 22h32   #4
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par Sakapatate
hello,

En effet, j'ai pas mis bcp d'info.
Voici un exemple de chaine de caractère :
"version >2-1.exe< du 13/02"
et moi je veux extraire la chaine : 2-1.exe

Merci pour ton aide...
bye

Pour cet exemple, ça marche
  • Une brève introduction aux expressions rationnelles
http://perso.orange.fr/gleu/absfr.tu...fr/x12216.html

echo "version >2-1.exe< du 13/02" | sed -n "s/^.*>\([^<]*\.exe\)<.*$/\1/p"
2-1.exe
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2007, 19h13   #5
Nouveau Membre du Club
 
Inscription : octobre 2006
Messages : 90
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 90
Points : 39
Points : 39
Merci bcp...
Avec en plus l'aide sur les RE c'est cool.

Merci
Bye
Sakapatate est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 01h28   #6
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 71
Points : 39
Points : 39
Bonjour,
Je pose ma question dans ce topic car il me semble qu'elle y ressemble beaucoup :

J'arrive à obtenir la liste des fichiers nommés 'url' contenant le texte 'prdownloads.sourceforge.net' dans le répertoire package avec :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$ find packages/ -iname url | xargs grep prdownloads.sourceforge.net
packages/strace/url:http://prdownloads.sourceforge.net/strace/strace-4.5.14.tar.bz2
packages/scummvm/url:http://prdownloads.sourceforge.net/scummvm/scummvm-0.9.1.tar.bz2
packages/pylirc/url:http://prdownloads.sourceforge.net/pylirc/pylirc-0.0.5.tar.gz
packages/fuse/url:http://prdownloads.sourceforge.net/fuse/fuse-2.5.3.tar.gz
packages/zsnes/url:http://prdownloads.sourceforge.net/zsnes/zsnes150src.tar.bz2
packages/libungif/url:http://prdownloads.sourceforge.net/libungif/libungif-4.1.4.tar.bz2
packages/lirc/url:http://prdownloads.sourceforge.net/lirc/lirc-0.8.1.tar.bz2
packages/PyXML/url:http://prdownloads.sourceforge.net/pyxml/PyXML-0.8.4.tar.gz
packages/imlib2/url:http://prdownloads.sourceforge.net/enlightenment/imlib2-1.3.0.tar.gz
packages/libupnp/url:http://prdownloads.sourceforge.net/pupnp/libupnp-1.4.1.tar.gz
packages/freetype/url:http://prdownloads.sourceforge.net/freetype/freetype-2.1.10.tar.bz2
packages/sysfsutils/url:http://prdownloads.sourceforge.net/linux-diag/sysfsutils-2.0.0.tar.gz
packages/libexif/url:http://prdownloads.sourceforge.net/libexif/libexif-0.5.12.tar.gz
Mais j'aimerais dans chaque fichier remplacer 'prdownloads.sourceforge.net' par 'superb-west.dl.sourceforge.net/sourceforge'.
Je suppose que c'est la commande sed qu'il faudrait utiliser mais je ne sais pas comment ...
faya972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2007, 20h10   #7
Membre expérimenté
 
Avatar de BlaireauOne
 
Inscription : mars 2007
Messages : 469
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2007
Messages : 469
Points : 576
Points : 576
Citation:
Envoyé par faya972
Mais j'aimerais dans chaque fichier remplacer 'prdownloads.sourceforge.net' par 'superb-west.dl.sourceforge.net/sourceforge'.
Je suppose que c'est la commande sed qu'il faudrait utiliser mais je ne sais pas comment ...

Ça doit marcher (en bash), mais à tester sur un fichier au préalable

find . -iname url | xargs grep -l prdownloads.sourceforge.net | xargs sed -i 's!prdownloads.sourceforge.net!superb-west.dl.sourceforge.net/sourceforge!'
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 21h13   #8
Nouveau Membre du Club
 
Inscription : avril 2006
Messages : 71
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 71
Points : 39
Points : 39
Heu ... étant passé à un autre projet entretemps, je me rends compte maintenant que je ne t'ai pas remercié BlaireauOne (!??).

Je n'ai pas encore testé mais je ferai savoir si ça fonctionne. Et encore merci.
faya972 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h59.


 
 
 
 
Partenaires

Hébergement Web